我一直在eclipse的Master / Detail流程模板中构建一个应用程序(我的第一个)。
我已成功将actionbarsherlock
添加到项目中,应用程序将运行到API 10,但每当我尝试从mItem.id
调用onCreateOptionsMenu()
(所选列表项的ID)时我的细节片段在API 16(android 4.1)mItem.id
之外的任何东西都是null。 API 17& 18没有问题,似乎在操作栏之前声明了项目ID。
片段类
public class ModuleDetailFragment extends SherlockFragment implements OnClickListener {
//The fragment argument representing the item ID that this fragment represents.
public static final String ARG_ITEM_ID = "item_id";
// The content this fragment is presenting.
public ModuleList.ModuleItem mItem;
和onCreateOptionsMenu:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater mi) {
Toast.makeText(getActivity(), "item id = "+mItem.id, Toast.LENGTH_SHORT).show();
}
我有if语句标识按下按钮并显示正确的操作栏菜单项,但这足以导致崩溃。
任何指针都会非常感激,谷歌到目前为止回报的很少。
此致
丹
答案 0 :(得分:0)
最终弄清楚了,在使用getActivity().invalidateOptionsMenu();
可能不是最有效的解决方案,但它对我有效(无论如何都是蜂窝式的)。