1. 程式人生 > >android選單項單擊事件方法介紹

android選單項單擊事件方法介紹

響應選單項的單擊動作:

一、實現OnMenuItemClickListener介面,再實現此介面的OnMenuItemClick(MenuItem item)方法;

二、使用Activity類的onOptionsItemSelected(MenuItem item)和onMenuItemSelected(int featureId , MenuItem item)方法來響應選單線的單擊事件。

這兩個方法都有一個Item引數,用於傳遞被單擊的選單項的MenuItem物件,可以根據MenuItem介面的相應方法(例如,getTitle方法和getItemId方法)判斷單擊的是哪個選單項。

三、這三種方法之間的區別

既然有三種方法,如果同時使用者三種方法,就會產生一個問題,他們都會起作用嗎?如果都起作用,那麼呼叫順序呢?實際上,當onMenuItemClick方法返回true時,另外兩種單擊事件的相應方式都會失效,也就是系統不會去呼叫另外兩種方法。如果不設定第一種方法,而同時使用了另外兩種響應單擊事件的方式,系統會根據在onMenuItemSelected方法中呼叫父類(Activity類)的onMenuItemSelected方法(即super.onMenuItemSelected(featureId,item))的位置來決定先呼叫onOptionItemSelected方法還是先呼叫onMenuItemSelected方法。

public boolean onMenuItemSelected(int featureId,MenuItem item){

             super.onMenuItemSelected(featureId,item);//這條語句呼叫了onOptionItemSelected方法

             Log.d("Tag","super.onMenuItemSelected");//如果將super語句放在Log語句之後,則會先執行onMenuItemSelected方法後在執行。

}

提示如何動態新增、修改和刪除選項選單:主要是獲取menu物件,在呼叫onCreateOptionsMenu方法的時候儲存menu引數。