我是Android的新手,我需要我的应用程序来监听始终按下的特定键。我已经设法使用以下代码在每个活动中使用它:
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.KEYCODE_F) {
Log.d("Test","YOU PRESSED THE F KEY");
startActivity(new Intent(getApplicationContext(), Activity2.class));
return true;
}
return super.dispatchKeyEvent(e);
};
但是,我想知道我是否可以在代码中的某个地方使用此方法? (而不是在每个单独的活动中都有这段代码)
答案 0 :(得分:2)
创建一个新的抽象活动,您的所有活动都可以扩展。
public abstract class BaseActivity extends Activity {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.KEYCODE_F) {
Log.d("Test","YOU PRESSED THE F KEY");
startActivity(new Intent(getApplicationContext(), Activity2.class));
return true;
}
return super.dispatchKeyEvent(e);
}
}
答案 1 :(得分:1)
您可以定义一个扩展Activity的抽象基类,并像您一样覆盖dispatchKeyEvent
,然后创建此类的所有活动子类。
也许你想阅读this tutorial。
答案 2 :(得分:1)
是的,您可以先定义一个包含此方法的抽象父活动,然后继承此活动
。