2

在我的应用程序中,我有一个EditText.

EditText是用于货币输入,例如2.239.99

换句话说,用户可以输入2then.然后23到这个EditText

为了实现这种行为,EditTextInputFilter在 Mussa 对这个问题EditText with Currency format的回答中实现了一个like 。它就像一个魅力。

但后来我想用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>

现在,我将我的应用InputFilterTextInputEditText.

当我没有设法键入.after时,我感到很惊讶2

为什么我不能输入点以防万一TextInputEditText?如何实现?

4

3 回答 3

1

我想您不能将过滤器设置TextInputEditText为,因为它没有从 EditText 类继承此方法。我没有在文档中找到任何类似的方法,TextInputEditText 但是您不必专门使用带有TextInputLayout. 您可以TextInputEditText用您拥有的过滤器替换普通的 EditText,它会像以前一样工作。

于 2017-12-10T17:31:35.390 回答
1

使用当前的布局代码。我可以看到你已经使用inputTypeasnumber并且你想要的必须是decimal

你可以试试inputTypeas numberDecimal

希望能帮助到你。

于 2017-12-10T17:36:21.583 回答
0

您可以将 InputFilter 添加到 TextInputEditText。

科特林

secondary_currency_input.editableText.filters[0] = yourInputFilter
于 2021-06-27T05:42:49.223 回答