小编Han*_*eld的帖子

分配了 InputFilter 的 EditText / 在横向模式下隐藏小数分隔符

在我正在编写的应用程序中,我遇到了一个带有指定 InputFilter 的 EditText 的非常奇怪的问题。这个想法是,有一个 EditText,它只接受十进制数字作为输入,根据用户的区域设置,最多有两个小数位和一个小数分隔符。这是相关的代码片段

我的布局中的 EditText

 <EditText
        android:id="@+id/value"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:digits="01234567890,."
        android:inputType="number|numberDecimal"
        android:nextFocusForward="@+id/category" >
Run Code Online (Sandbox Code Playgroud)

输入过滤器实现

public class MoneyFilter implements InputFilter {
    private String testRegex;

    public MoneyFilter(String decimalSep) {
        testRegex = "^\\d+\\" + decimalSep + "?\\d{0,2}$";
    }

    @Override
    public CharSequence filter(CharSequence source, int start, int end,
        Spanned dest, int dstart, int dend) {
        String s = source.toString();
        String d = dest.toString();

        String r = d.substring(0, dstart) + s.substring(start, end)
            + d.substring(dend);

        if (r.matches(testRegex)) {
            return null;
        } else { …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-edittext

2
推荐指数
1
解决办法
2413
查看次数

标签 统计

android ×1

android-edittext ×1

android-layout ×1