我需要控制按下的按钮,在它们进入我的EditText小部件之前。它应该像过滤器一样工作。例如:我需要用户只能用数字1、2、3、4、5填充EditText,其他符号必须忽略。所以虚拟键盘上的按钮部分应该被禁用,或者我需要捕获最后按下的符号,分析它并禁用EditText。
谁知道解决这个问题的方法?谢谢. .
statusEdt.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {
//do stuff
charTxt.setText(statusEdt.getText().length() + "/140");
}
});
我使用这个TextChangedListener(texttwatcher)来保存为我制作的Twitter客户端在EditText中输入了多少字符的计数。你可能会用到这样的监听器。你会想要重写beforeTextChanged或onTextChanged。这些方法将传递给您已键入的CharSequence。您可以检查输入的内容,如果它不是有效的输入,您可以通过调用setText()并传入到目前为止键入的任何内容(减去无效字符)来删除它。
您可能需要的是InputFilter。例如,只允许数字、符号和小数点:
editText.setFilters(DigistKeyListener.getInstance(true, true));