我有一个ListView
我给了OnItemLongClickListener
。在长按项目时,应显示一个对话框。
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position,long id)
{
System.out.println("LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO");
String selectedFromList =(String) (lv.getItemAtPosition(position));
final int kindid = db.selectIDvonKind(selectedFromList);
try{
AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this);
adb.setTitle("Kind " + selectedFromList + " löschen?");
adb
.setMessage("Sind Sie sicher dass Sie " + selectedFromList + " löschen möchten?")
.setCancelable(false)
.setPositiveButton("Ja",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
db.deletekind(kindid);
}
})
.setNegativeButton("Nein",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
}
catch(Exception e){
Toast t = Toast.makeText(MainActivity.this, "Kind konnte nicht gelöscht werden!", Toast.LENGTH_SHORT);
t.show();
}
return false;
}
});
我的问题是,我还有OnItemClickListener
:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String selectedFromList =(String) (lv.getItemAtPosition(arg2));
int id = db.selectIDvonKind(selectedFromList);
System.out.println(" " + id);
Intent i = new Intent(MainActivity.this, Ereignisse.class);
i.putExtra("kinderid", id);
startActivity(i);
}
});
所以现在,当我长按一个项目时,对话框没有被触发,只有onItemClick
的动作被执行。
我的问题在哪里?
答案 0 :(得分:2)
要显示您需要在对话框实例上调用AlertDialog
方法的show()
:
adb.show();
答案 1 :(得分:0)
您已在对话框中调用show()方法。
还要检查您在列表视图中是否已完成以下操作: -
mListView.setLongClickable(true);
mListView.setOnLongClickListener(this);