2011-08-24 36 views
4

我希望我的EditText內容類型爲數字。我設置輸入類型這是根據reference。但是仍然可以輸入任何字符。如何正確設置EditText的InputType?

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

我在這裏做錯了什麼?

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

編輯:

下面是一些代碼:

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; 

回答

10

使用剛剛輸入的類型,而不是

input.setInputType(InputType.TYPE_CLASS_NUMBER);

+1

是的,它的工作原理。謝謝。 – Roman

1

試試這個:

InputType.TYPE_CLASS_PHONE 
+0

不,這是行不通的。 – Roman

1

與空第一次調用,然後輸入類型號碼呼叫:

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

它將如何將null作爲參數,因爲它將int作爲參數進行提示類型。 –

相關問題