相关疑难解决方法(0)

如何使用InputFilter限制Android中EditText中的字符?

我想将字符限制为0-9,az,AZ和空格键.设置inputtype我可以限制为数字,但我无法弄清楚Inputfilter查看文档的方式.

android android-edittext

168
推荐指数
12
解决办法
15万
查看次数

仅限键盘编号的EditText视图

我想要一个只有可见数字的键盘到EditText视图.没有任何其他角色.

我已经测试了所有可用的输入并且不起作用.我已经搜索了一种只使用数字键盘的方法,但我只看到过引用:

android: inputType = "numberPassword"
Run Code Online (Sandbox Code Playgroud)

但我想在EditText中看到可见的数字.有人可以帮帮我吗?

我想要一个这样的键盘:(numberPassword)

在此输入图像描述

我尝试过:

android:digits="0123456789"
android:inputType="phone"
Run Code Online (Sandbox Code Playgroud)

android:inputType="number"
Run Code Online (Sandbox Code Playgroud)

看起来像那样:

在此输入图像描述

android android-layout android-edittext

43
推荐指数
5
解决办法
8万
查看次数

EditText输入过滤器导致重复的字母

我一直在限制输入到我的edittext这样的;

InputFilter filter = new InputFilter() { 
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            String output = "";
            for (int i = start; i < end; i++) {
                if (source.charAt(i)!='~'&&source.charAt(i)!='/') {
                    output += source.charAt(i); 
                }
            } 
            return output;
        }
    };
Run Code Online (Sandbox Code Playgroud)

但是任何使用过这种方法的人都会知道,当它与自动纠正和退格键混合时会导致重复的字符.为了解决这个问题,我从键盘上取下了自动校正条,就像这样;

Edittect.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
Run Code Online (Sandbox Code Playgroud)

现在这在股票安卓键盘上工作正常,但问题是在替代键盘上(来自谷歌播放)它不会禁用自动更正,因此我遇到了重复字符的问题.有没有人遇到这个/知道如何解决它?

android android-edittext android-input-filter

5
推荐指数
1
解决办法
2513
查看次数

有人可以帮我解决Android InputFilter"过滤器"方法的参数吗?(加上正则表达式)

请有人可以向我解释source和dest参数的用途android.text.InputFilter#filter吗?

我试着阅读文档,但我真的很困惑.我正在尝试使用正则表达式来制作IP掩码.任何帮助表示赞赏.

我现在明白了.所以,例如,如果我有123.42,那么用户输入123.42d,我会:

dest = 123.42  
source = 123.42d  
start = 5  
end = 6

InputFilter[] filters = new InputFilter[1];
    filters[0] = new InputFilter() 
    {
        public CharSequence filter(CharSequence source, int start, int end, Spanned  dest, int dstart, int dend) 
        {               
            String destTxt = dest.toString();
            String resultingTxt = destTxt.substring(0, dstart) +                           source.subSequence(start, end) + destTxt.substring(dend);                

            if(resultingTxt.equals("")) return "";

            int lastChar = resultingTxt.length() -1;

            if(String.valueOf(resultingTxt.charAt(lastChar)).matches("[^0-9.]"))
            {
                return "";
            }

            return null;
        }
    };
Run Code Online (Sandbox Code Playgroud)

这不行.这不应该只返回数字吗?它会发生,取决于用户类型,它也会返回字符.

java regex ip android mask

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