【发布时间】:2011-09-20 23:45:53
【问题描述】:
我需要控制按下的按钮,然后才能将它们转到我的 EditText 小部件。它应该像过滤器一样工作。 例如:我需要用户只能用数字 1、2、3、4、5 填充 EditText,其他符号必须被忽略。所以应该禁用虚拟键盘上的按钮部分,否则我需要捕捉最后按下的符号,分析它并禁用 EditText。
谁知道如何解决这个问题?
谢谢..
【问题讨论】:
标签: android keyboard key virtual try-catch
我需要控制按下的按钮,然后才能将它们转到我的 EditText 小部件。它应该像过滤器一样工作。 例如:我需要用户只能用数字 1、2、3、4、5 填充 EditText,其他符号必须被忽略。所以应该禁用虚拟键盘上的按钮部分,否则我需要捕捉最后按下的符号,分析它并禁用 EditText。
谁知道如何解决这个问题?
谢谢..
【问题讨论】:
标签: android keyboard key virtual try-catch
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(TextWatcher) 来记录我为我创建的 Twitter 客户端在 EditText 中输入了多少字符。您可能可以使用这样的侦听器。您需要覆盖 beforeTextChanged 或 onTextChanged。这些方法将传递您输入的任何 CharSequence。您可以检查输入的内容,如果输入无效,您可以通过调用 setText() 并传入迄今为止输入的内容减去无效字符来删除它。
【讨论】:
您可能需要的是InputFilter。 例如只允许数字、符号和小数点:
editText.setFilters(DigistKeyListener.getInstance(true, true));
【讨论】: