我有一个包含几个项目的 LisView。为此,我连接了一个 OnItemClickListener (作为内部类),如下所示:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(ShoppingListApp02Activity.this, "List item selected:" +
items.get(position).getId(), Toast.LENGTH_LONG).show();
}
});
很明显,选择一个条目会显示该条目的对象的元素,在此示例中是所选项目对象的 ID(不是列表 ID,而是对象 ID,在创建 ArrayList 项目时设置)。这很好用,使我能够对选定的项目做任何我想做的事情。
现在我还想给她一个“长按”监听器,它会为选定的 ListView 项打开一个上下文菜单。我怎么做?我已经能够将 onCreateContextMenu 侦听器附加到 ListView,但是我看不到如何像使用 onItemClickListener 一样获取 ArrayList 的元素?
这是我所拥有的:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(0, v.getId(), 0, "Something");
menu.add(0, v.getId(), 0, "Something else");
}
由于 OnCreateConextMenu 采用与 OnItemClickListener 不同的参数,我如何像在 OnItemClickListener 中那样访问 ArrayList 的元素?