如何从Android Studio中的用户输入数值并将其转换为kotlin中的变量int?

时间:2017-12-24 08:00:18

标签: java android kotlin

大家好我想在Android Studio中制作计算器,因为我是新的Kotlin和Java因此对我来说很难。

这是我的mainActivity xml文件的源代码:

    <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName|number"
    app:layout_constraintBottom_toTopOf="@+id/editText2"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.094"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.753"
    tools:hint="First Number"
    android:numeric="integer|decimal"/>

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="none|textPersonName|number"
    app:layout_constraintBottom_toTopOf="@+id/editText3"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.094"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText1"
    tools:hint="Second Number"
    android:numeric="integer|decimal"/>

<TextView
    android:id="@+id/editText3"
    android:layout_width="217dp"
    android:layout_height="36dp"
    android:text="Answer"
    app:layout_constraintBottom_toTopOf="@+id/okactivity2"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.095"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/editText2" />

这是我的Android mainActivity.kt文件

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main2)

    okactivity2.setOnClickListener{
        val num1 = editText1.text
        val user1: Int = num1
        val num2 = editText2.text
        val user2: Int = num2
         val sum = user1 + user2
        editText3.setText("Answer is $sum")

    }

}

这里我无法将字符串editText1和editText2转换为int,因此我可以将ediText3设置为答案

2 个答案:

答案 0 :(得分:0)

EditText的{​​{1}}属性类型为text。您需要先将其转换为Editable,然后将其转换为String

Int

答案 1 :(得分:0)

更改android xml文件中的输入类型:

val num = editText1.text.toString().toDouble()

并使用此代码:

toInt()

user Double以十进制输入或使用{{1}}转换为整数。