Длинный клик не работает с ListView

Я пытаюсь установить длинный клик для ListView:

final ListView gallery=(ListView)findViewById(R.id.dialogViewImagesList); gallery.setLongClickable(true); gallery.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View arg0) { Log.e("event", "long"); return true; } }); gallery.setAdapter(new PointImagesAdapter(bitmaps)); 

Это мой адаптер:

 private class PointImagesAdapter extends ArrayAdapter<Bitmap> { private static final int LAYOUT_ID=R.layout.adapter_point_images; private List<Bitmap> bitmaps; private LayoutInflater inflater; public PointImagesAdapter(List<Bitmap> bitmaps) { super(MainActivity.this, LAYOUT_ID, bitmaps); this.bitmaps=bitmaps; inflater=LayoutInflater.from(MainActivity.this); } @Override public View getView(int position, View view, ViewGroup group) { if (view==null) { view=inflater.inflate(LAYOUT_ID, null); } ImageView i=(ImageView)view.findViewById(R.id.adapterPointImagesItem); i.setScaleType(ImageView.ScaleType.CENTER); i.setImageBitmap(bitmaps.get(position)); view.setFocusable(false); return view; } } 

Я попытался установить view.setLongClickable (true), но в этом случае элементы ListView не могут быть доступны кликом (простой щелчок не работает). Это код макета для адаптера:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="false" android:orientation="vertical" > <ImageView android:focusable="false" android:layout_gravity="center" android:layout_marginTop="5dip" android:id="@+id/adapterPointImagesItem" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> 

Я не понимаю, почему этот код не работает! Как я могу это исправить?

Вы должны использовать setOnItemLongClickListener

 gallery.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int arg2, long arg3) { }); } 

Кроме того, если ваш адаптер listview распространяется из BaseAdapter, вам также необходимо установить convertView.setLongClickable(true); В getView() .