ANDROID - Цифровая клавиатура - PullRequest
1 голос
/ 28 марта 2012

Добрый день.

У меня есть EditText, который может содержать цифры и буквы.Развертывая клавиатуру, есть ли способ развернуть ее в числовой форме?.

Если я добавлю EditText как числовой, я это делаю, но это не мой случай.

Большое спасибо.

Ответы [ 4 ]

6 голосов
/ 28 марта 2012

Попробуйте это:

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

Затем верните его в буквенно-цифровую форму, когда закончите с цифрой ..

1 голос
/ 22 ноября 2012

Использование 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);
1 голос
/ 28 марта 2012

Вы можете:

  • Скрыть / показать разные EditTexts, которые имеют разные типы ввода
  • Динамически установить тип ввода вашего EditText по мере необходимости (editText.setInputType (InputType.TYPE_WHATEVER)

Вы не можете:

  • По умолчанию IME для EditText с текстом inputType соответствует макету «Числовой».
0 голосов
/ 29 марта 2012

В вашем методе 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);

        }
    });

Поэтому, когда вы ставите первый символ, если он будет числовым значением, клавиатура будет отображаться в режиме ввода чисел, иначев режиме ввода текста.

...