首页 > 解决方案 > 如何将文本编辑值分配给 Android Studio Kotlin 中的浮点变量

问题描述

Android Studio Kotlin 中的新手,正在努力将值从 edittext 对象传递给 float 变量,但事实证明这是一个挑战。我能够做到这一点,但只有在使用了 2 个额外的变量之后;但是我不敢相信它不能直接完成。这就是我设法做到的方式:

        var temp: EditText = findViewById(R.id.txtPriceA)
        var temp2: String  = temp.getText().toString()
        var priceA: Float = temp2.toFloat()

编辑文本的 XML 是这样的:

<EditText
        android:id="@+id/txtPriceA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:autofillHints=""
        android:gravity="center"
        android:hint="@string/enter_price_a"
        android:inputType="numberDecimal"
        android:textColor="#0E0B0B"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="@+id/textView5"
        app:layout_constraintHorizontal_bias="0.526"
        app:layout_constraintStart_toStartOf="@+id/textView5"
        app:layout_constraintTop_toBottomOf="@+id/textView5"
        tools:text="$23.45" />

我提前感谢大家的帮助。射线。

标签: androidkotlinandroid-edittextvar

解决方案


您可以像这样跳过中间变量:

val priceA = findViewById(R.id.txtPriceA).getText().toString().toFloat()

如果您刚刚开始,并且只是掌握框架的窍门,那么您应该认为这是唯一的方法。

在你掌握了窍门之后,我认为你应该看看视图模型和数据绑定,这样你就可以编写一个反向绑定适配器,将文本字段的值作为浮点数直接映射到视图模型中的变量.

随着您对 kotlin 越来越熟悉,您还可以为此目的编写扩展属性。结合 kotlin 合成视图绑定,您的代码可能如下所示:

val priceA = txtPriceA.floatValue

祝你在安卓上的努力好运!


推荐阅读