AlertDialog does not fire on ItemLongClickListener



我有一个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);

相关内容

  • 没有找到相关文章

最新更新