android - 如何将文本编辑值分配给 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" />
我提前感谢大家的帮助。射线。
解决方案
您可以像这样跳过中间变量:
val priceA = findViewById(R.id.txtPriceA).getText().toString().toFloat()
如果您刚刚开始,并且只是掌握框架的窍门,那么您应该认为这是唯一的方法。
在你掌握了窍门之后,我认为你应该看看视图模型和数据绑定,这样你就可以编写一个反向绑定适配器,将文本字段的值作为浮点数直接映射到视图模型中的变量.
随着您对 kotlin 越来越熟悉,您还可以为此目的编写扩展属性。结合 kotlin 合成视图绑定,您的代码可能如下所示:
val priceA = txtPriceA.floatValue
祝你在安卓上的努力好运!
推荐阅读
- r - 具有 nlme 和 lme4 的线性混合模型中的多重随机效应
- python - 过滤日期时间字段python
- google-chrome - 量角器 - 错误代码 199:Chrome 版本不支持 84 版
- c - C中的浮点异常(核心转储)
- typo3 - TYPO3 多个嵌套的 DatabaseQueryProcessor
- c# - 自定义 JSON 合同解析器忽略所有没有自定义注释的属性
- python - <403> API URL 的响应 Python Scrapy/Request
- f# - paket - 如何将包安装到项目的本地文件夹
- css - Webpack + 反应。如何预加载主 CSS 文件?
- php - php artisan migrate 的 MySQL 错误