【问题标题】:Android handle all input key an touch eventAndroid处理所有输入键的触摸事件
【发布时间】:2010-09-01 08:35:06
【问题描述】:

如何处理传入我的 Android 应用程序的所有输入键和触摸事件?

有什么地方可以让我捕捉到所有这些事件吗?

【问题讨论】:

    标签: android events key touch


    【解决方案1】:

    【讨论】:

    • 我需要处理的不是传入当前视图的事件,而是系统发送给应用程序的所有事件。
    • 我不确定我是否理解。据我所知,按键和触摸事件被发送到视图和对话框。您能否更详细地解释一下您要通过您的应用程序实现的目标?
    • @codespy:使用 @Key 在扩展 Activity 的抽象类中提到的内容,并使您的所有活动都从该类扩展。
    【解决方案2】:

    只需将以下内容添加到您的初始活动中:

    // generic Key Listener
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
        Log.d("Activity", "Key pressed"+keyCode);
    
        switch (keyCode) 
        {
            case KeyEvent.KEYCODE_BACK:
                Log.d("Activity", "Back Key pressed");
            return true;
    
            case KeyEvent.KEYCODE_MENU:
                Log.d("Activity", "Menu Key pressed");
            return true;
    
            case KeyEvent.KEYCODE_HOME:
                Log.d("Activity", "Home Key pressed"); // doesn't Print!
            return true;
        }
    
        return super.onKeyDown(keyCode, event);
    }
    

    注意,您无法捕获 Home 键!

    【讨论】:

    • 使用“@Override”:@Override public boolean onKeyDown(int keyCode, KeyEvent event)
    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多