在我的应用程序中我有一个EditText
。
此EditText
用于货币输入,例如:2.23
,9.99
换句话说,用户可以键入2
,然后.
,然后23
到此EditText
为了实现EditText
的这种行为,我像Mussa对此问题的回答一样实现了InputFilter
。它像魅力一样工作。
,但后来我想通过这样的构造替换我的EditText
:
<android.support.design.widget.TextInputLayout
android:id="@+id/secondary_currency"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_currency"
tools:hint="Болгарский перец">
<android.support.design.widget.TextInputEditText
android:id="@+id/secondary_currency_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="12sp"
tools:text="348929.00" />
</android.support.design.widget.TextInputLayout>
现在,我将InputFilter
应用于TextInputEditText
。
当我没有设法在2
之后键入.
时,我感到惊讶。
为什么我不能在TextInputEditText
的情况下输入DOT?如何实现它?
带有当前布局代码。我可以看到您已将inputType
用作number
,而您的理想必须是 DECIMAL 。
您可以将inputType
作为numberDecimal
。
希望它有帮助。
我想您无法将其设置为TextInputEditText
,因为它没有从Edittext类继承此方法。我没有管理t在TextInputEditText
的文档中找到任何类似的方法但是您不必使用TextInputLayout
专门使用THS类。您可以用您的过滤器将TextInputEditText
替换为正常的递观,并且它将像以前一样工作。
您可以将InputFilter添加到textInputEdittext。
kotlin
secondary_currency_input.editableText.filters[0] = yourInputFilter