我试图忽略来自任何连接的物理/硬件键盘的输入,同时仍然允许软键盘输入。
通过使用this answer中的示例,我能够完成我需要的任务,但是我必须找到并将覆盖添加到我放置在项目中的每个EditText。
我想知道是否可以覆盖活动或整个应用中所有EditTexts的setOnKeyListener方法?
答案 0 :(得分:1)
创建一个可以容纳你的监听器的全局变量
View.OnKeyListener keyListener = new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
return false;
}
};
然后将其设置为所有editText
editText1.setOnKeyListener(keyListener);
editText2.setOnKeyListener(keyListener);
希望这有帮助
修改强>
您也可以使用注射器。例如ButterKnife
@BindViews({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews;
通过这个你的图书馆,你不必做findViewById()
,最好的事情就是你只需要一行即可达到你想要的东西
nameViews.setOnKeyListener(keyListener);
上面的代码将keyListener设置为3 EditText