我有一個簡單的2活動應用程序。主要活動填充listFragment,第二個活動使用字段填充片段以將自定義對象(列表項)添加到主要活動。在片段中的動作欄項單擊處理程序
在第二個活動中,我在操作欄中有一個「保存」圖標。我試圖弄清楚如何在片段中單擊這個按鈕,以便我可以打包textField並通過界面將其傳遞迴活動。
我試圖覆蓋onOptionItemSelected
但它並沒有命中。我將如何處理?
我有一個簡單的2活動應用程序。主要活動填充listFragment,第二個活動使用字段填充片段以將自定義對象(列表項)添加到主要活動。在片段中的動作欄項單擊處理程序
在第二個活動中,我在操作欄中有一個「保存」圖標。我試圖弄清楚如何在片段中單擊這個按鈕,以便我可以打包textField並通過界面將其傳遞迴活動。
我試圖覆蓋onOptionItemSelected
但它並沒有命中。我將如何處理?
好了,關鍵是在片段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);
}
我也面臨同樣的問題。我的問題是在onCreate()方法中只有這個方法setHasOptionsMenu(true);需要添加? – 2016-03-25 10:44:49
是的,然後當一個項目被選中時,它會調用'onOptionsItemSelected'的覆蓋。 – ENG618 2016-03-25 16:47:54
謝謝。它像魅力一樣工作。 – 2017-03-02 04:54:57
http://stackoverflow.com/questions/15035861/fragment-onoptionsitemselected-not-being-called – raja 2014-09-19 08:10:48
謝謝,這解決了它! – ENG618 2014-09-19 08:20:54