2014-03-25 17 views
1

我對Android非常陌生,我需要我的應用程序來傾聽特定的鍵在任何時候都被按下。我設法讓每個活動這個工作用下面的代碼: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); 
}; 

不過,我想弄清楚,如果我能只有這個方法中的代碼,一旦某個地方? (而不是在每個單獨的活動中都有這段代碼)

回答

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

您可以定義一個抽象基類來擴展Activity,並像您一樣覆蓋dispatchKeyEvent,然後創建此類的所有活動子類。
也許你想讀this tutorial

1

是的,你可以通過先定義保留此方法的抽象父活動做到這一點,然後從這個活動