我有一个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
的动作。
我的问题在哪里?
要显示AlertDialog
,您需要在对话框实例中调用show()
方法:
adb.show();
您还没有在对话框中调用show()方法。
还要检查你是否在listview上做了以下操作:-
mListView.setLongClickable(true);
mListView.setOnLongClickListener(this);