java - 当我按下一个键时 onKeyUp 没有启动

原文 标签 java android

每次我按一个键启动 toast 时我都在尝试,但它似乎没有启动它,知道吗?

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.txtKey);
        editText = findViewById(R.id.etxtKeyboard);
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_P:
                Toast.makeText(this, "P pressed", Toast.LENGTH_SHORT).show();
                return true;
            default:
                return super.onKeyUp(keyCode, event);
        }
    }

最佳答案

正如 Android 文档所说的 Activity.onKeyUp()方法:

Called when a key was released and not handled by any of the views inside of the activity. So, for example, key presses while the cursor is inside a TextView will not trigger the event (unless it is a navigation to another object) because TextView handles its own key presses.



因此,当焦点位于 findViewById(R.id.etxtKeyboard); 时,您似乎正试图捕捉 onKeyUp() 事件。编辑 TextView 。

您可以尝试在 Activity.onCreate() 中添加这样的代码:
editText.setOnKeyListener(
        new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                switch (keyCode) {
                    case KeyEvent.KEYCODE_P:
                        Toast.makeText(MyActivity.this, "P pressed", Toast.LENGTH_SHORT).show();
                        return true;
                    default:
                        return false;
                }
            }
        }
);

关于java - 当我按下一个键时 onKeyUp 没有启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52838963/

相关文章:

java - 应该如何从 Spring Data Neo4j 6 中删除的 @Depth 注释迁移?

Android 视频水印,无服务器?

Android HTML Jsoup 解析速度

java - 将项目作为 jar 打包到 war 项目中(Gradle)

java - java try block 的范围应该尽可能紧吗?

java - 用静态方法创建一个新的随机数

java - 如何传递一个类型的值并将其转换为另一种类型?

android - 如何使用 Parse.com API 修复 "Unchecked call to findInBackground"

android - Facebook ProfilePictureView 显示圆形图片

java - 嵌套有界通配符