Alex Rivera | Logout

how to implement a long click listener on a listview

Asked 2012-01-13T06:19:25.863
164

I want to add OnLongClickListener on my list view. Whenever the user long press the item in list some action should be performed, But my code does not catch this listener. Please let me know where I am going wrong. The similar code works for setOnItemClickListener very well.

Here is the code :

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    public boolean onItemLongClick(AdapterView<?> arg0, View v,
            int index, long arg3) {
        // TODO Auto-generated method stub
         Log.d("in onLongClick");
         String str=listView.getItemAtPosition(index).toString();
         
         Log.d("long click : " +str);
        return true;
    }
}); 
            
Edit
Report

1 Answer

338

You have to set setOnItemLongClickListener() in the ListView:

lv.setOnItemLongClickListener(new OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int pos, long id) {
                // TODO Auto-generated method stub

                Log.v("long clicked","pos: " + pos);

                return true;
            }
        }); 

The XML for each item in the list (should you use a custom XML) must have android:longClickable="true" as well (or you can use the convenience method lv.setLongClickable(true);). This way you can have a list with only some items responding to longclick.

Hope this will help you.

answered 2012-01-13T06:36:11.313

Your Answer