ANDROID - 数字键盘

时间:2012-03-28 17:19:23

标签: android keyboard numeric

下午好。

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

如果我把EditText作为数字我做,但那不是我的情况。

非常感谢。

4 个答案:

答案 0 :(得分:6)

试试这个:

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

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

答案 1 :(得分:1)

你可以:

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

你不能:

  • 在EditText上默认使用带有inputType文本的IME到“数字”布局。

答案 2 :(得分:1)

使用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);

答案 3 :(得分:0)

在你的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);

        }
    });

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