我想在 Spinner 中使用自定义字体和颜色。我不能直接修改它们<spinner/>
这是我的代码
<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5pt"
android:layout_marginTop="5pt"
android:backgroundTint="#d9d9d9"
android:entries="@array/dropdown_main" />
Run Code Online (Sandbox Code Playgroud)
它应该是这样的:
文字字体为 Product Sans Bold,颜色为 #333333
我需要将 3 个 editText 转换为 Double 并进行自动计算。问题是:在 Java 中,Double.parseDouble()如果 editText 字符串为空,则使用抛出异常,因此我必须使用 try catch。在 Kotlin 中,使用toDoubleOrNull我必须检查“if”是否为空。
现在,我必须使用 2 个 editTextval a = firstDobule + secondDouble然后val b = a + 2
但是使用上述方法我无法分离计算:它需要同时转换所有 3 个 editText,我想一次转换单个 editText。
为了让您更好地理解,这是 C# 中的代码:
Double.TryParse(firstEditText.Text, out Double firstDouble);
Double.TryParse(secondEditText.Text, out Double secondDOuble);
Double a = firstDouble + secondDOuble;
Double b = a + 2;
Run Code Online (Sandbox Code Playgroud)
在 C# 中,使用 TryParse 不会抛出任何异常,也不需要手动检查是否为 null。我想这样做,但在 Kotlin 或 Java 中
我有 2 个编辑文本。当editText1被修改时,editText2的内容将等于editText1 * 5。当editText2被修改时,editText1的内容将等于editText2 * 5。
现在,如果我使用addTextChangedListener()它,它就会循环,因为 editTexts 内容会发生变化,总是导致崩溃。我需要检测 editTexts 是否被用户修改或以编程方式修改。
任何想法?
如果可以帮助的话,这是我的代码:
fun EditText.doubleValue() = text.toString().toDoubleOrNull() ?: 0.0
editText1.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
override fun afterTextChanged(editable: Editable) {
editText2.setText(editText1.doubleValue() * 5)
}
})
editText2.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
override fun onTextChanged(charSequence: CharSequence, i: Int, i1: …Run Code Online (Sandbox Code Playgroud)