AlertDialog不会触发ItemLongClickListener

时间:2013-05-07 11:59:18

标签: android alertdialog onitemclick

我有一个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的动作被执行。

我的问题在哪里?

2 个答案:

答案 0 :(得分:2)

要显示您需要在对话框实例上调用AlertDialog方法的show()

adb.show();

答案 1 :(得分:0)

您已在对话框中调用show()方法。

还要检查您在列表视图中是否已完成以下操作: -

    mListView.setLongClickable(true);
    mListView.setOnLongClickListener(this);