java - Android 无法触发 onKey 事件

标签 java android key listener

我很难触发主视图的 onKey 事件。我不确定自己做错了什么,我已经正确实现了 onClick 事件,但似乎无法弄清楚 onKey 事件。

相关代码如下:

public class MyActivity extends Activity {
    private RelativeLayout main;
    private ApplicationToolbar toolbar;

    public void onCreate(Bundle savedInstanceState) {
        ...
        this.main = (RelativeLayout) this.findViewById(R.id.main);
        this.toolbar = new ApplicationToolbar(this);

        //  toolbar is added to main later on in the code...

        this.main.setOnClickListener(mClickListener);
        this.main.setOnKeyListener(mKeyListener);
    }

    private OnClickListener mClickListener = new OnClickListener() {
        public void onClick(View v) {
            toolbar.setVisibility(View.VISIBLE);    // Works correctly.
        }
    };

    private OnKeyListener mKeyListener = new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            toolbar.setBackgroundColor(0xFF0000FF);    //  Does not work.
            return true;
        }
    };
}

事实上,无论我在 mKeyListener 中放入什么代码,它都不会执行,这让我相信事件本身永远不会被触发,即使我在我的物理键盘上按下一堆键(Motorola Droid、Android 2.1).

最佳答案

您可以尝试覆盖 onKeyDown(int keyCode, KeyEvent event)

检查:

关于java - Android 无法触发 onKey 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3340931/

相关文章:

java - Tomcat 7 : cached copy of war file deployed

java - 运行远程应用程序但不运行整个桌面

java - 如何在 Java 中的同一个列表中添加多个对象类型

android - YouTube.Builder 的正确使用方法

Swift - 按键降序对字典进行排序

json - jq:如何使用多个选择作为值来 reshape 对象?

java - 从简单的 java 客户端调用 Web 服务

android - 使用自定义键盘中可见的候选 View 重新调整 UI

android - 切换 Activity 时不显示 AdMob 插页式广告 (Android)

java - 从 Guava Multimap 中的值返回键