覆盖我的Android应用程序中所有EditTexts的setOnKeyListener?

时间:2018-05-02 03:22:06

标签: android android-edittext override

我试图忽略来自任何连接的物理/硬件键盘的输入,同时仍然允许软键盘输入。

通过使用this answer中的示例,我能够完成我需要的任务,但是我必须找到并将覆盖添加到我放置在项目中的每个EditText。

我想知道是否可以覆盖活动或整个应用中所有EditTexts的setOnKeyListener方法?

1 个答案:

答案 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