【发布时间】:2016-04-24 12:50:09
【问题描述】:
我在 ListView 中使用Arraylist < HashMap< String, String >> 来归档多列(我只需要两列,所以我使用 HashMap)。但是当我在上下文菜单中使用删除方法时。它总是会删除列表中的最后一项。
代码:
@Override
public boolean onContextItemSelected(MenuItem item) {
final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
switch (item.getItemId()) {
case R.id.bc_contextmenu_delete:
list.remove(info.position);
adapter.notifyDataSetChanged();
return true;
default:
return super.onContextItemSelected(item);
}
}
我应该怎么做才能解决这个问题才能从列表中删除选定的一个?
此外,我还想从 ArrayList 中的 HashMap 中获取这两个值。我应该在这里使用哪个代码。
这是一个 ArrayList:
PS4 4000<br>
PS5 5000<br>
XBOX 6000<br>
我想要 PS4 和 4000。
谢谢大家。
【问题讨论】:
-
为什么arraylist包含hashmap?如果您需要存储键值详细信息列表,hashmap 就足够了。
-
因为我需要一个多列列表视图。普通的列表视图每行只包含一个字符串。在这里,我需要一个可以包含多个字符串的列表视图。就像我上面展示的例子一样。 PS4 是一个字符串,4000 是另一个字符串。它们应该显示在列表视图的同一行中
-
我认为根据您的要求采用没有字段而不是映射的新 java bean 类。例如人名和薪水,因此将来可能会添加新列,因此您必须仅在其中添加一个额外字段。
标签: java android listview arraylist hashmap