textInputEditText的inputFilter

时间:2017-12-10 17:07:24

标签: android android-textinputlayout android-textinputedittext android-input-filter

在我的申请表中,我有EditText

EditText适用于货币输入,例如:2.239.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的情况下键入点?如何实现呢?

3 个答案:

答案 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