2010-07-27 84 views
2

我很難讓主視圖的onKey事件觸發。我不確定我做錯了什麼,我已經正確實施了onClick事件,但似乎無法找出onKey事件。使用Android時觸發onKey事件的問題

下面是相關代碼:

public class MyActivity extends Activity { 
    private RelativeLayout main; 
    private ApplicationToolbar toolbar; 

    public void onCreate(Bundle savedInstanceState) { 
     ... 
     this.main = (RelativeLayout) this.findViewById(R.id.main); 
     this.toolbar = new ApplicationToolbar(this); 

     // toolbar is added to main later on in the code... 

     this.main.setOnClickListener(mClickListener); 
     this.main.setOnKeyListener(mKeyListener); 
    } 

    private OnClickListener mClickListener = new OnClickListener() { 
     public void onClick(View v) { 
      toolbar.setVisibility(View.VISIBLE); // Works correctly. 
     } 
    }; 

    private OnKeyListener mKeyListener = new OnKeyListener() { 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      toolbar.setBackgroundColor(0xFF0000FF); // Does not work. 
      return true; 
     } 
    }; 
} 

事實上,無論我穿什麼碼內mKeyListener它不執行,這使我相信,這個事件本身是永遠不會被觸發,甚至當我按下我的物理鍵盤上的一串按鍵(摩托羅拉Droid,Android 2.1)。

回答

0

你可以嘗試重寫onKeyDown(int keyCode, KeyEvent event)

檢查:

+0

感謝,重寫onKeyDown事件的作品,這是我的情況一個可行的解決方法。任何想法爲什麼我上面的方法不能正常工作? – celestialorb 2010-07-27 05:51:15

+0

@celestialorb:您按下某個鍵時,您可能沒有任何'RelativeLayout'的子'onFocus'。嘗試添加一個'EditText'裏面。 – Macarse 2010-07-27 05:59:12