1

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

我的问题在哪里?

4

2 回答 2

2

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

adb.show();

于 2013-05-07T12:32:45.787 回答
0

您还没有在对话框上调用 show() 方法。

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

    mListView.setLongClickable(true);
    mListView.setOnLongClickListener(this);
于 2013-05-07T12:20:02.417 回答