如何在Android中收听按键

时间:2011-07-05 09:27:43

标签: java android

我想听Android按键。例如,当我按下手机上的菜单键时,我将按下此按键并启动应用程序。

我不知道Phonewindowmanager.java当我按下一个键时,interceptKeyTq()来了两次。

2 个答案:

答案 0 :(得分:2)

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            //do something
        }
        return true;
    }

希望这有帮助。

答案 1 :(得分:1)

这是一个简单的测试程序。不要忘记setFocusable(true)和 无效()。

使用System.out时,可以使用Log - http://code.google.com/android/reference/android/util/Log.html

public class HelloAndroid extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(new MyView(this));
    }

    class MyView extends View {
        private static final String LOGID = "MxView";
        String message = "No key pressed yet.";

        MyView(Context context) {
                super(context);
                setFocusable(true);
        }

        @Override
        protected void onDraw(Canvas canvas) {
                Paint paint = new Paint();
                canvas.drawText(message, 5, 20, paint);
        }

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent ev) {
                switch(keyCode) {
                case KeyEvent.KEYCODE_DPAD_UP:
                        message = "Key Up!";
                        Log.i(LOGID, message);
                        break;
                case KeyEvent.KEYCODE_DPAD_DOWN:
                        message = "Key Down!";
                        Log.i(LOGID, message);
                        break;
                default:
                        return false;
                }
                invalidate();
                return true;
        }
    }

}