gpt4 book ai didi

android - 在 ListView 上长按事件后创建菜单

转载 作者:IT老高 更新时间:2023-10-28 13:15:06 25 4
gpt4 key购买 nike

我有一个连接到数据库的 ListView ,显示所有条目。如果用户长按 ListView (数据库条目)中的项目,我希望显示一个菜单,显示编辑或删除条目的选项。我怎样才能做到这一点。

到目前为止,我已经尝试使用 onItemLongClick 监听器和其中的 toast 来显示长按 View 的 id。

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {

String res = Long.toString(id);
Toast toast = Toast.makeText(this, res, Toast.LENGTH_SHORT);
toast.show();

return true;
}

最佳答案

首先您需要在 ListView 中注册上下文菜单。

lv = (ListView) findViewById(R.id.list_view);
registerForContextMenu(lv);

然后,只需覆盖 Activity 方法。

/**
* MENU
*/

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.list_view) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
}
}

@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId()) {
case R.id.add:
// add stuff here
return true;
case R.id.edit:
// edit stuff here
return true;
case R.id.delete:
// remove stuff here
return true;
default:
return super.onContextItemSelected(item);
}
}

这里是 menu_list.xml 文件的示例(您必须将文件放在 res/menu 文件夹中)。

<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/add"
android:icon="@android:drawable/ic_menu_add"
android:title="@string/menu_add" />

<item android:id="@+id/edit"
android:icon="@android:drawable/ic_menu_edit"
android:title="@string/menu_edit" />

<item android:id="@+id/delete"
android:icon="@android:drawable/my_icon_delete"
android:title="@string/menu_delete" />

</menu>

希望它会有所帮助。

关于android - 在 ListView 上长按事件后创建菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207366/

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