TextInputEditText 的输入过滤器
inputFilter for TextInputEditText
在我的应用程序中,我有一个 EditText
。
此EditText
为货币输入,例如:2.23
、9.99
换句话说,用户可以输入 2
然后 .
然后 23
到这个 EditText
为了实现 EditText
的这种行为,我实现了一个 InputFilter
,就像 Mussa 对这个问题的回答 EditText with Currency format 一样。它就像一个魅力。
但后来我想用这样的结构替换我的 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
的情况下键入点?如何实现?
我想您不能将 Filter 设置为 TextInputEditText
,因为它没有从 EditText class 继承此方法。我没能在 docs 中为 TextInputEditText
找到任何类似的方法
但是您不必专门使用 class 和 TextInputLayout
。您可以将 TextInputEditText
替换为带有过滤器的普通 EditText,它会像以前一样工作。
使用当前布局代码。我可以看到您已将 inputType
用作 number
,并且您的理想值必须是 十进制 。
您可以尝试将 inputType
设为 numberDecimal
。
希望对您有所帮助。
您可以将 InputFilter 添加到 TextInputEditText。
科特林
secondary_currency_input.editableText.filters[0] = yourInputFilter
在我的应用程序中,我有一个 EditText
。
此EditText
为货币输入,例如:2.23
、9.99
换句话说,用户可以输入 2
然后 .
然后 23
到这个 EditText
为了实现 EditText
的这种行为,我实现了一个 InputFilter
,就像 Mussa 对这个问题的回答 EditText with Currency format 一样。它就像一个魅力。
但后来我想用这样的结构替换我的 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
的情况下键入点?如何实现?
我想您不能将 Filter 设置为 TextInputEditText
,因为它没有从 EditText class 继承此方法。我没能在 docs 中为 TextInputEditText
找到任何类似的方法
但是您不必专门使用 class 和 TextInputLayout
。您可以将 TextInputEditText
替换为带有过滤器的普通 EditText,它会像以前一样工作。
使用当前布局代码。我可以看到您已将 inputType
用作 number
,并且您的理想值必须是 十进制 。
您可以尝试将 inputType
设为 numberDecimal
。
希望对您有所帮助。
您可以将 InputFilter 添加到 TextInputEditText。
科特林
secondary_currency_input.editableText.filters[0] = yourInputFilter