【发布时间】:2019-02-03 03:42:18
【问题描述】:
我希望允许用户根据地区输入带有小数点分隔符(逗号或点)的数字。
现在我使用DigitsKeyListener 来启用逗号作为某些区域(例如波兰、德国)的分隔符。
val separator = DecimalFormatSymbols.getInstance().decimalSeparator
editTextValue.keyListener = DigitsKeyListener.getInstance("-0123456789$separator")
这段代码写在kotlin。
如果软件键盘是Gboard 或其他第三方键盘,那么一切都很好,用户可以使用逗号或点作为分隔符。
但当用户使用普通键盘并设置了DigitsKeyListener 时,并非所有键都可见并且用户无法添加分隔符。
这是我的 EditText 代码:
<android.support.design.widget.TextInputLayout
android:id="@+id/textInput"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
app:hintTextAppearance="@style/Lorin.Theme.TextInputLayout"
app:layout_constraintLeft_toRightOf="@id/imageInfo"
app:layout_constraintRight_toLeftOf="@id/buttonHistoryNumeric">
<android.support.design.widget.TextInputEditText
android:id="@+id/editTextValue"
style="@style/Lorin.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="flagNavigateNext"
android:inputType="number|numberSigned|numberDecimal"
android:maxLines="1"
tools:hint="Range"/>
</android.support.design.widget.TextInputLayout>
val separator = DecimalFormatSymbols.getInstance().decimalSeparator
//editTextValue.keyListener = DigitsKeyListener.getInstance("-0123456789$separator")
注释DigitsKeyListener 的行时,分隔符的键可见,但唯一可用的分隔符是点
您知道如何在普通键盘上使用逗号作为分隔符吗?
【问题讨论】:
标签: kotlin android kotlin android-edittext