shreyashirday
shreyashirday

Reputation: 900

Listview hold and press with onTouchListener

So, I've seen examples where many are asking how to handle a swipe on the listview but I want to know how I can trigger and AlertDialog while pressing down on a listview item for that specific item. So, when I press and hold on that specific item on the listview, the onTouch method should recognize which item it is.

l.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                int action = event.getAction();
                AlertDialog.Builder alert = new AlertDialog.Builder(ctx);
                alert.setTitle("Delete Friend?");
                alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface d, int which) {
                        //onTouchListener should recognize which friend is being pressed on,
                        //similar to onItemClickListener

                    }
                });

                alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        //Do Nothing
                    }
                });
                if(action == MotionEvent.ACTION_DOWN){
                    alert.create().show();
                }

                return false;
            }
        });

Upvotes: 0

Views: 1458

Answers (1)

David P
David P

Reputation: 617

You could use a Long Click Listener.

eg;

    listView.setOnItemLongClickListener(new AdapaterView.OnItemLongClickListener(){
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id){
        //Add alertDialog here
        }
    });

Upvotes: 2

Related Questions