gpt4 book ai didi

android - OnCreateContextMenu 和 ListView 项

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:34 26 4
gpt4 key购买 nike

我有一个包含多个项目的 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 的元素?

最佳答案

如果您决定仍要使用上下文菜单范例:

考虑使用列表:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {  

// Get the list
ListView list = (ListView)v;

// Get the list item position
AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo;
int position = info.position

// Now you can do whatever.. (Example, load different menus for different items)
list.getItem(position);
...
}

关于android - OnCreateContextMenu 和 ListView 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com