ListView doesnt fire setOnLongClickListener, only setOnItemClickListener
13,108
Solution 1
You have to enable the LongClickable
list.setLongClickable(true);
and
list.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
final int arg2, long arg3) {
}
});
Solution 2
@Vadim, are your listview's adapter is extends from BaseAdapter? if yes, then also need to set convertView.setLongClickable(true); in the getView().
Solution 3
For me, I had to set android:longClickable="true"
in the XML file that contains my ListView row layout (not ListView layout) for the item to be long-clickable.
Comments
-
Ofershap almost 2 years
I'd like to have both type of clicks on a listView - onClick and LongClick.
I've implemented it like this:
this.listViewSub = (ListView) this.findViewById(R.id.listsub); this.listViewSub.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(final AdapterView parent, final View view, final int position, final long id) { ... } }); // listen to long click - to share texts this.listViewSub.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { ... } });
But it does't fire the Long Click. Anyone has any idea why?
-
Ofershap almost 13 yearsI've added a breakpoint inside this method, and it doesn't stops there.. it looks like it doesnt fire the event.
-
Ofershap almost 13 yearsThanks man! Solved my problem :) And BTW - you don't have to do setLongClickable trough code, its nicer when you determn it through the XML: android:longClickable="true"
-
Vadim over 12 yearsThe documentation of
setOnItemLongClickListener
says that "If this view is not long clickable, it becomes long clickable." -
tmin over 10 yearsMake sure to use
setOnItemLongClickListener
, NOTsetOnLongClickListener
-
Steve B about 9 yearsOf the many proposed solutions I've seen for this issue (and I've tried them ALL), this is the only one that has worked for me.