onCreateOptionsMenu未在Fragments中调用

时间:2013-10-19 13:59:52

标签: java android eclipse android-fragments android-fragmentactivity

我知道这个问题已被问过很多次,因为我搜遍了所有的答案,但遗憾的是,我找不到答案主要是因为似乎没有人使用基础的Android类for Fragments&相反,他们都使用Sherlock Fragment Class。

首先,我没有使用任何Sherlock Activity或Android支持库。我只是使用默认的Fragment类:

import android.app.Fragment
import android.view.Menu
import.android.view.MenuItem
import.android.view.View
//& so on...

这是我片段中的onCreateView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment1, null);
    setHasOptionsMenu(true);
    return root;
}

&安培;这是onCreateOptionsMenu也在同一个Fragment里面

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getActivity().getMenuInflater();
    menu.clear();
    inflater.inflate(R.menu.fragment1_menu, menu);

//A lot of other code here

return super.getActivity().onCreateOptionsMenu(menu);

}

我的基础主FragmentActivity类没有onCreateOptionsMenu本身,但我不认为这会影响碎片。

另外,我似乎无法覆盖onCreateOptionsMenu,我得到的错误是; onCreateOptionsMenu必须覆盖或实现超类型方法。

所以,如果有人有任何想法可以解决这个问题,我真的很感激!

非常感谢你!

1 个答案:

答案 0 :(得分:2)

onCreateOptionsMenu()的{​​{1}}方法签名与Fragment中的方法签名不同,如the documentation所示。

将您的实施更改为:

Activity