【问题标题】:Is there a way to create a new input type in android edit text?有没有办法在 android 编辑文本中创建新的输入类型?
【发布时间】:2019-05-09 17:06:03
【问题描述】:

我想知道是否有一种方法可以创建您自己的输入类型,它可以在您的编辑文本中使用。 例如,我想强制用户只输入 1 到 5 之间的数字,因此输入类型“数字”不符合我的要求,我想创建一个新的输入类型,即“数字_1_5”并且只允许用户添加 1 到 5 之间的数字。

我在 android 文档和网络上进行了搜索,但一无所获:(

感谢您的帮助!

【问题讨论】:

  • 尝试使用文本更改监听器并在更改时检查数字是否在 1 到 5 之间。
  • 我认为您可以使用 from InputFilter 来实现此目的。
  • 完美。这正是我想做的,但我只是没有意识到我可以用它做到这一点。非常感谢。

标签: android input types android-edittext


【解决方案1】:

为此目的使用InputFilter

 InputFilter filter= new InputFilter() {

    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { 
        for (int i = start; i < end; i++) { 
            String checkMe = String.valueOf(source.charAt(i));

            Pattern pattern = Pattern.compile("[12345]*");
            Matcher matcher = pattern.matcher(checkMe);
            boolean valid = matcher.matches();
            if(!valid){
                Log.d("", "invalid");
                return "";
            }
        } 
        return null; 
    } 
};

mEditText.setFilters(new InputFilter[]{filter});

【讨论】:

  • 嗨,谢谢你的回答,但我认为 Rajendra Mahato 的回答更适合我想做的事情。
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 2010-09-30
相关资源
最近更新 更多