使用 ListView 创建上下文菜单
Creating a ContextMenu with a ListView
我有一个 ListView
填充了一个 CustomAdapter
,长按后应该显示 ContextMenu
。
我试着这样做:
// in OnCreateView
ListView list = (ListView) view.findViewById(R.id.list);
registerForContextMenu(list);
和
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.todo_context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.edit:
// Do something
return true;
case R.id.delete:
// Do something
return true;
default:
return super.onContextItemSelected(item);
}
}
我的 todo_context_layout.xml
是:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/edit" android:title="Edit"/>
<item android:id="@+id/delete" android:title="Delete"/>
</menu>
长按会触发 OnItemLongClickListener
,但不会显示上下文菜单。我做错了什么?
阅读以下thread后,我找不到问题的答案。
如果您想显示上下文菜单,则不需要长按监听器。尝试不使用此侦听器。
我有一个 ListView
填充了一个 CustomAdapter
,长按后应该显示 ContextMenu
。
我试着这样做:
// in OnCreateView
ListView list = (ListView) view.findViewById(R.id.list);
registerForContextMenu(list);
和
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.todo_context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.edit:
// Do something
return true;
case R.id.delete:
// Do something
return true;
default:
return super.onContextItemSelected(item);
}
}
我的 todo_context_layout.xml
是:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/edit" android:title="Edit"/>
<item android:id="@+id/delete" android:title="Delete"/>
</menu>
长按会触发 OnItemLongClickListener
,但不会显示上下文菜单。我做错了什么?
阅读以下thread后,我找不到问题的答案。
如果您想显示上下文菜单,则不需要长按监听器。尝试不使用此侦听器。