ANDROID — Цифровая клавиатура

Добрый день.

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

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

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


person Sebosin    schedule 28.03.2012    source источник
comment
Вы делаете это в коде? Вы имеете в виду, что вы не пометили EditText как числовой, но хотите показать цифровую клавиатуру при некоторых обстоятельствах?   -  person Simon    schedule 28.03.2012


Ответы (4)


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

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

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

person Simon    schedule 28.03.2012
comment
Необходимо включить InputType.TYPE_CLASS_NUMBER следующим образом: myEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); - person pstoppani; 18.01.2013

Ты сможешь:

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

Тебе нельзя:

  • По умолчанию IME в EditText с текстом inputType для «Числового» макета.
person Mark D    schedule 28.03.2012

Использование XML:

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

or

Используя код:

EditText editText=new EditText(this);
editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
person Mahesh    schedule 22.11.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);

        }
    });

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

person Wajdi Hh    schedule 28.03.2012