Как правильно установить InputType для EditText? - PullRequest
4 голосов
/ 24 августа 2011

Я хочу, чтобы мой EditText тип контента был числовым. Я установил InputType , который равен 2 в соответствии с ссылкой . Но все еще можно ввести любой символ.

final EditText input = new EditText(this);
input.setRawInputType(InputType.TYPE_CLASS_NUMBER);

Что я здесь не так делаю?

Я не могу использовать XML, но у меня есть EditTextPreference с android:inputType="number", и он работает правильно.

EDIT:

Вот еще немного кода:

case R.id.set_counter:
AlertDialog.Builder setCounterDialog = new AlertDialog.Builder(this);
setCounterDialog.setTitle("Set counter value");

final EditText input = new EditText(this);
input.setRawInputType(InputType.TYPE_CLASS_NUMBER);
InputFilter[] filter = new InputFilter[1];
filter[0] = new InputFilter.LengthFilter(4);
input.setFilters(filter);

setCounterDialog.setView(input);
setCounterDialog.setPositiveButton("Ok", new OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        String inputText = input.getText().toString();
        counter = Integer.parseInt(inputText);
        counterLabel = (TextView) findViewById(R.id.counter);
        counterLabel.setText(inputText);
    }
});
setCounterDialog.setNegativeButton("Cancel", null);
setCounterDialog.show();
return true;

Ответы [ 3 ]

10 голосов
/ 24 августа 2011

вместо этого используйте только тип ввода

input.setInputType(InputType.TYPE_CLASS_NUMBER);

1 голос
/ 24 августа 2011

Сначала вызов с нулем, затем вызов с номером типа ввода:

input.setRawInputType(null);
input.setRawInputType(InputType.TYPE_CLASS_NUMBER);
1 голос
/ 24 августа 2011

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

InputType.TYPE_CLASS_PHONE
...