fab*_*bio 2 android android-layout android-fragments android-listfragment
我有一个ListFragment,我必须添加一个菜单.这是我的代码:listuser_menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/any_option"
android:title="In Context Menu" />
</menu>
Run Code Online (Sandbox Code Playgroud)
我的ListFragment:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
View mFooterView;
// We need to use a different list item layout for devices older than Honeycomb
int layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
android.R.layout.simple_list_item_activated_1:android.R.layout.simple_list_item_1;
if(getListAdapter()==null){
// init adapter
adapter=new UserArrayAdapter(getActivity(),
MOBILE_OS);
}
else{
adapter.notifyDataSetChanged();
}
// set adapter
registerForContextMenu(getListView());
setListAdapter(adapter);
}
@Override
public void onCreateContextMenu(final ContextMenu menu, final View v,
final ContextMenuInfo menuInfo){
menu.clear();
super.onCreateContextMenu(menu, v, menuInfo);
final MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.listuser_menu, menu);
}
Run Code Online (Sandbox Code Playgroud)
但我看不到我的菜单..为什么?如何选择注册选项菜单?谢谢!
可以在片段中添加菜单,在片段中使用以下代码:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.listuser_menu, menu);
}
Run Code Online (Sandbox Code Playgroud)
使用setHasOptionsMenu将允许您的片段显示菜单.
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |