在选定的 ContextMenu 操作上更新自定义 ListView 行
Update Custom ListView Row on selected ContextMenu Action
我有一个包含自定义 row_layout 的自定义 ListView。
长按后,您会从上下文菜单中获得不同的选项。根据用户选择的选项,我想将 image/icon 添加到所选行以对其进行标记。
我找不到完全涵盖此用例的答案。对于这种情况,我将不胜感激提示或帮助或教程。
提前致谢。
没关系,我自己找到了解决方案。我在我的 ListItem - Class 中添加了一个布尔变量,在 list_row_layout 中添加了 ImageView,在 CustomAdapter class 中向我的 ViewHolder Class 添加了一个 ImageView。因此,当单击 contextItem 时,被单击的 listItem 的布尔属性设置为 true。
示例代码:
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
int itemPosition = info.position;
switch (item.getItemId()) {
case R.id.contextItem1:
listViewItems.get(itemPosition).setMarkerAttribute(true);
listView.setAdapter(new MyCustomListAdapter(context, listViewItems));
return true;
case R.id.contextItem2:
//do sth
return true;
case R.id.contextItem3:
//do sth
return true;
default:
return super.onContextItemSelected(item);
}
}
希望这对某些人有用,因为很多示例只涉及删除项目...
我有一个包含自定义 row_layout 的自定义 ListView。 长按后,您会从上下文菜单中获得不同的选项。根据用户选择的选项,我想将 image/icon 添加到所选行以对其进行标记。
我找不到完全涵盖此用例的答案。对于这种情况,我将不胜感激提示或帮助或教程。
提前致谢。
没关系,我自己找到了解决方案。我在我的 ListItem - Class 中添加了一个布尔变量,在 list_row_layout 中添加了 ImageView,在 CustomAdapter class 中向我的 ViewHolder Class 添加了一个 ImageView。因此,当单击 contextItem 时,被单击的 listItem 的布尔属性设置为 true。
示例代码:
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
int itemPosition = info.position;
switch (item.getItemId()) {
case R.id.contextItem1:
listViewItems.get(itemPosition).setMarkerAttribute(true);
listView.setAdapter(new MyCustomListAdapter(context, listViewItems));
return true;
case R.id.contextItem2:
//do sth
return true;
case R.id.contextItem3:
//do sth
return true;
default:
return super.onContextItemSelected(item);
}
}
希望这对某些人有用,因为很多示例只涉及删除项目...