tsi*_*sil 2 android listview contextual-action-bar
我正在使用Contextual Action Barwith ListView(CHOICE MODE SINGLE).一切正常但我不知道如何检索所选项目.
listViewData.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listViewData.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (mActionMode != null) {
return false;
}
mActionMode = ((ActionBarActivity) getActivity()).startSupportActionMode(mActionModeCallback);
view.setSelected(true);
return true;
}
});
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_edit:
mode.finish();
return true;
case R.id.menu_share:
mode.finish();
return true;
case R.id.menu_delete:
mode.finish();
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mActionMode = null;
}
};
Run Code Online (Sandbox Code Playgroud)
如何检索所选项目
您可以ActionMode.setTag()在onItemLongClick 中使用将所选项目位置传递给onActionItemClicked使用ActionMode.getTag()为:
mActionMode = ....;
mActionMode.setTag(position); //<<< set selected row position
view.setSelected(true);
Run Code Online (Sandbox Code Playgroud)
并在onActionItemClicked中设置所选项:
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
int item_postion=Integer.parseInt(mode.getTag().toString());
String str_item=listViewData.getAdapter().getItem(item_postion);
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2989 次 |
| 最近记录: |