gpt4 book ai didi

android - 如何在 Android 的 ListActivity 中实现上下文菜单?

转载 作者:IT王子 更新时间:2023-10-29 00:03:19 26 4
gpt4 key购买 nike

如何实现由长按或点击使用内置布局和 ListAdapter 的 ListActivity 触发的上下文菜单?

最佳答案

关于 onCreate 方法调用 registerForContextMenu像这样:

registerForContextMenu(getListView());

然后在 onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo) 上填充菜单. menuInfo 参数可以通过这种方式提供有关哪个项目被长按的信息:

AdapterView.AdapterContextMenuInfo info;
try {
info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return;
}
long id = getListAdapter().getItemId(info.position);

然后您以通常调用 menu.add 的方式添加菜单项:

menu.add(0, MENU_ITEM_ID, 0, R.string.menu_string);

当用户选择一个选项时,onContextItemSelected叫做。还有onMenuItemSelected并且这个事实在文档中没有明确解释,只是说您使用另一种方法来接收来自上下文菜单的调用;请注意,不要共享 ID。

在 onContextItemSelected 上,您可以通过调用 getMenuInfo() 获得 MenuInfo 和所选项目的 ID。 :

try {
info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return false;
}
long id = getListAdapter().getItemId(info.position);

关于android - 如何在 Android 的 ListActivity 中实现上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/433761/

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