如何正确设置EditText的InputType?

时间:2011-08-24 03:01:26

标签: android input numbers

我希望我的 EditText 内容类型为数字。我根据reference设置 InputType 2 。但它仍然可以输入任何角色。

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

我在这里做错了什么?

我不能使用XML,但我有android:inputType="number"的EditTextPreference,它可以正常工作。

修改

以下是一些代码:

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 个答案:

答案 0 :(得分:10)

只使用输入类型

input.setInputType(InputType.TYPE_CLASS_NUMBER);

答案 1 :(得分:1)

试试这个:

InputType.TYPE_CLASS_PHONE

答案 2 :(得分:1)

首先使用null调用,然后使用输入类型编号调用:

input.setRawInputType(null);
input.setRawInputType(InputType.TYPE_CLASS_NUMBER);