所以我有一个自定义列表视图,其中填充了姓名和电话号码。我希望能够长按列表视图中的项目,然后弹出一个对话框,允许我编辑字段或删除行。我怎样才能做到这一点?目前我有下面的代码,如果你longClick,它只删除行。我假设我必须创建一个Dialog类,然后在OnLongItemClickLister中调用它?我不知道如何做到这一点,任何帮助都会很棒。
lvCustomList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
ContactListItems contactListItems = (ContactListItems)arg0.getItemAtPosition(arg2);
String id = contactListItems.getID();
String delQuery = "DELETE FROM PHONE_CONTACTS WHERE id='"+id+"' ";
sqlHandler.executeQuery(delQuery);
showlist();
return false;
}
});
答案 0 :(得分:0)
首先,您必须在项目的menu
文件夹下的文件夹res
处创建新的XML文件。将其命名为main_popup_menu
并添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/delete"
android:title="@string/delete"
android:onClick="doDelete"/>
</menu>
然后,将其添加到您的onItemLongClickListener
:
PopupMenu p = new PopupMenu(ViewDiaryActivity.this, view);
p.getMenuInflater().inflate(R.menu.main_popup_menu, p.getMenu());
p.show();
我试过了,它显示了弹出删除按钮。 :d