【问题标题】:EditText setInputType(InputType.TYPE_CLASS_NUMBER); don't workEditText setInputType(InputType.TYPE_CLASS_NUMBER);不工作
【发布时间】:2014-08-28 22:46:09
【问题描述】:

我正在尝试使用创建一个只接收数字的editText(只出现数字键盘)。在不会发生的关系 7 上:X

这是我的代码:

    EditText edit = new EditText(context);
    edit.setText(value);
    edit.setTextSize(16);
    edit.setTextColor(getResources().getColor(R.color.blue));
    edit.setInputType(InputType.TYPE_CLASS_NUMBER
            | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    edit.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
            elem.setValue(s.toString());
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
        }
    });

你能帮帮我吗?

编辑:

我将这个 EditText 添加到这样的 LinearLayout 中:

    myLinearLayout.addView(edit);

【问题讨论】:

  • 可能是你的 EditText 正在重新绘制,尝试通过 xml 设置 INPUT_TYPE。不确定这是否会解决问题,但值得一试。而且,这将显示数字键并隐藏字母键,但符号键仍会膨胀

标签: android keyboard android-edittext numeric


【解决方案1】:

试试这个对你有帮助

改变,而不是这一行

edit.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

如下改变

edit.setRawInputType(InputType.TYPE_CLASS_NUMBER |InputType.TYPE_NUMBER_FLAG_DECIMAL);

【讨论】:

    【解决方案2】:

    尝试使用 TextView.setRawInputType(),相当于java:inputType

    【讨论】:

      【解决方案3】:

      这不是数字的作用。数字是对键盘的提示,它应该显示一个数字键盘。它不会强制键盘执行此操作,也不会阻止显示或输入其他键(如 +、-、#、* 等)。如果您想阻止输入某些字符,则必须在该应用程序端进行。如果你想这样做,你需要在编辑字段上设置一个 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++) { 
                              if (!Character.isDigit(source.charAt(i))) { 
                                      return ""; 
                              } 
                      } 
                      return null; 
              } 
      }; 
      edit.setFilters(new InputFilter[]{filter}); 
      

      【讨论】:

      • 谢谢.. 我会用那个 ;) 我只想要数字 :)
      猜你喜欢
      • 1970-01-01
      • 2019-01-01
      • 2012-06-06
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多