如何在Android Studio Kotlin中将textedit值分配给float变量

问题描述

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

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

edittext的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" />

在此先感谢大家的帮助。 雷。

解决方法

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

var lstAvailability = List<Availability>
int count = 0;
for (int i = 0; i < 200; i++)
{
  if(count =>  0 && count <= 100)
  {
     xiAvailability.RegionId = 1500;
     lstAvailability.Add(xiAvailability);
  }
  
  if (count => 100)
  {
     xiAvailability.RegionId = 1400;
     lstAvailability.Add(xiAvailability);
  }
  
  count = count + 1;
}

如果您只是入门,并且仅了解框架的本质,则应将其视为唯一方法。

掌握了很多知识之后,我认为您应该看一下ViewModels和数据绑定,这样您就可以编写一个反向绑定适配器,该适配器将文本字段的值映射为ViewModel中的变量,如下所示:直接浮动。

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

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

祝您Android努力!