0
我想設置模式「9,999」(其中9是數字0-9)編程的EditText的數字值。到目前爲止,我有:設置EditText與編碼器編程數字
final EditText editText = new EditText(v.getContext());
editText.setLayoutParams(params);
editText.setText("");
editText.setKeyListener(DigitsKeyListener.getInstance(""));
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLenght)});
editText.addTextChangedListener(new TextWatcher() {
int len=0;
//int count=0;
@Override
public void afterTextChanged(Editable s) {
String str = editText.getText().toString();
if(str.length()==1&& len <str.length()){//len check for backspace
editText.append(",");
}
}
@Override
public void beforeTextChanged(CharSequence c, int arg1, int arg2, int arg3) {
String str = editText.getText().toString();
len = str.length();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String str = editText.getText().toString();
}
});
這是不是最好的,因爲:
- DigitsKeyListener不會接受 「」 分隔符。
- 當我輸入「1,0」和 然後去2倍退格我可以輸入「11111」。我必須去3x退格鍵 ,然後當我輸入「11111」將是「1,1111」
任何想法?
檢查此鏈接可能會幫助,http://blog.roshka.com/2012/08/android-edittext-with-number-format.html,你可以更新班級到你想要的格式,希望這會有所幫助,如果可以的話,讓我知道如果我可以發佈答案 –