【发布时间】:2015-05-24 02:49:09
【问题描述】:
我想创建一个包含一个 ListView 的应用程序屏幕。 当用户在 ListView 项目上执行长按时,我想显示动作模式。我用下面的代码实现了它,得到了我想要的结果。
一个问题是我想让用户只选择一个列表项并在操作模式下选择上下文菜单项来执行操作。以下代码允许用户选择多个列表项。
android 不支持 ListView.CHOICE_MODE_SINGLE_MODAL 选择模式吗?我在谷歌上花了很多时间,但找不到任何实现的参考,它允许使用上下文操作模式的单选模式。请帮忙。
mTestListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
mTestListView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode actionMode, int position, long l, boolean value) {
}
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
MenuInflater inflater = actionMode.getMenuInflater();
inflater.inflate(R.menu.context_menu_test_single_choice_mode, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_done:
Toast.makeText(getActivity(), "Done", Toast.LENGTH_SHORT).show();
actionMode.finish();
adapter.notifyDataSetChanged();
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
}
});
}
【问题讨论】: