2014-09-19 17 views
3

我有一個簡單的2活動應用程序。主要活動填充listFragment,第二個活動使用字段填充片段以將自定義對象(列表項)添加到主要活動。在片段中的動作欄項單擊處理程序

在第二個活動中,我在操作欄中有一個「保存」圖標。我試圖弄清楚如何在片段中單擊這個按鈕,以便我可以打包textField並通過界面將其傳遞迴活動。

我試圖覆蓋onOptionItemSelected但它並沒有命中。我將如何處理?

+2

http://stackoverflow.com/questions/15035861/fragment-onoptionsitemselected-not-being-called – raja 2014-09-19 08:10:48

+0

謝謝,這解決了它! – ENG618 2014-09-19 08:20:54

回答

20

好了,關鍵是在片段onCreate方法,你必須調用

setHasOptionsMenu(true); 

那麼所有你需要做的是覆蓋在片段onOptionsItemSelected,並處理操作欄點擊那裏!

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_save : { 
      Log.i(TAG, "Save from fragment"); 
      return true; 
     } 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

我也面臨同樣的問題。我的問題是在onCreate()方法中只有這個方法setHasOptionsMenu(true);需要添加? – 2016-03-25 10:44:49

+0

是的,然後當一個項目被選中時,它會調用'onOptionsItemSelected'的覆蓋。 – ENG618 2016-03-25 16:47:54

+0

謝謝。它像魅力一樣工作。 – 2017-03-02 04:54:57