Android App中的全局方法?

时间:2014-03-25 21:05:59

标签: java android android-studio

我是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);
};

但是,我想知道我是否可以在代码中的某个地方使用此方法? (而不是在每个单独的活动中都有这段代码)

3 个答案:

答案 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)

是的,您可以先定义一个包含此方法的抽象父活动,然后继承此活动