【问题标题】:ANDROID - Numeric keyboardANDROID - 数字键盘
【发布时间】:2012-11-22 18:21:08
【问题描述】:

下午好。

我有一个可能包含数字和字母的 EditText。通过展开键盘,有没有办法以数字的形式展开呢?

如果我将 EditText 设为数字,我会这样做,但这不是我的情况。

非常感谢。

【问题讨论】:

  • 你是在代码中做这个吗?您的意思是您没有将 EditText 标记为数字,但您想在某些情况下显示数字键盘?

标签: android keyboard numeric


【解决方案1】:

试试这个:

EditText myEditText = (EditText)findViewById(R.id.myEditText);
myEditText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);

当你完成数字后,将其设置回字母数字..

【讨论】:

  • 需要像这样包含 InputType.TYPE_CLASS_NUMBER:myEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
【解决方案2】:

你可以:

  • 隐藏/显示具有不同输入类型的不同 EditText
  • 根据需要动态设置 EditText 的输入类型 (editText.setInputType(InputType.TYPE_WHATEVER)

你不能:

  • 默认将带有 inputType 文本的 EditText 上的 IME 设置为“数字”布局。

【讨论】:

    【解决方案3】:

    使用 XML:

       <EditText 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/edittext"
            android:inputType="number"/>
    

    使用代码:

    EditText editText=new EditText(this);
    editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
    

    【讨论】:

      【解决方案4】:

      在您的 oncreate 方法中,您可以放置​​以下代码:

      final EditText myEditJava = (EditText) findViewById(R.id.myEdit);
      
          myEditJava.addTextChangedListener(new TextWatcher() {
      
              public void beforeTextChanged(CharSequence s, int start, int count,
                      int after) {
              }
      
              public void afterTextChanged(Editable s) {}
      
              public void onTextChanged(CharSequence s, int start, int before,
                      int count) {
                      if (s.toString().matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+"))
                          myEditJava.setInputType(InputType.TYPE_CLASS_PHONE);
                      else
                          myEditJava.setInputType(InputType.TYPE_CLASS_TEXT);
      
              }
          });
      

      因此,当您输入第一个字符时,如果它将是一个数字值,则键盘将显示在数字输入模式下,否则显示在文本输入模式下。

      【讨论】:

        猜你喜欢
        • 2017-04-22
        • 1970-01-01
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多