ABS菜单项未出现在Android 2.3中

时间:2013-06-15 20:30:48

标签: android

我正在我的应用程序中实现ABS,并且我有一个FragmentPagerAdapter,允许用户滑动/选择不同的标签。

这些标签中的每一个都包含不同的片段。基本上,我的问题是在我正在测试的Android 2.3.6设备上,当第一次调用活动时,第一个标签片段不会使它应该的菜单膨胀。但是,一旦我滑动到另一个标签并返回,它就会出现。

以下是片段中的代码:

public void onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    MenuInflater inflater = getSherlockActivity().getSupportMenuInflater();
    inflater.inflate(R.menu.menu_ongoing_fragment, menu);
}

同时,它在Android 4.2设备上完全正常工作(第一次启动活动时菜单会膨胀)这是否与这两个设备调用方法的顺序有关?

1 个答案:

答案 0 :(得分:0)

由于这个原因,它无法正常工作:

menu.clear();

删除它。

您的片段上应该有以下代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setHasOptionsMenu(true);
};

而不是“onPrepareOptionsMenu()”使用此:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.menu_ongoing_fragment, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

我希望这能解决你的问题!