在我的申请表中,我有EditText
。
此EditText
适用于货币输入,例如:2.23
,9.99
换句话说,用户可以键入2
然后.
,然后23
键入此EditText
为了实现EditText
的这种行为,我在Mussa的问题答案EditText with Currency format中实现了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
的情况下键入点?如何实现呢?
答案 0 :(得分:1)
使用当前的布局代码。我可以看到您已将inputType
用作number
,并且您的需要必须为十进制。
您可以inputType
作为numberDecimal
尝试。
希望它有所帮助。
答案 1 :(得分:0)
我想你不能将FileFilter设置为TextInputEditText
,因为它没有从EditText类继承这个方法。我没有在TextInputEditText
TextInputLayout
中找到任何类似的方法
但是你不必专门使用TextInputEditText
的课程。您可以使用正常的EditText将append
替换为您拥有的过滤器,并且它将像以前一样工作。
答案 2 :(得分:0)
您可以将 InputFilter 添加到 TextInputEditText。
科特林
secondary_currency_input.editableText.filters[0] = yourInputFilter