カスタムアダプタ/カスタムアイテムレイアウト(2xTextViewsおよび4xImageButtons)を使用してリストビューを作成していますが、リストアイテムを長押しして何かを実行し、レイアウト上のImageButtonsを押し続けることができるようにしたいと考えています。
問題は、TextViewsだけを使用している場合は、長押しイベントが機能してキャッチし、ImageButtonを追加するとすぐに長押しイベントが機能しなくなることです。なぜこれが起こっているのか考えていますか?
カスタムアダプタ/カスタムアイテムレイアウト(2xTextViewsおよび4xImageButtons)を使用してリストビューを作成していますが、リストアイテムを長押しして何かを実行し、レイアウト上のImageButtonsを押し続けることができるようにしたいと考えています。
問題は、TextViewsだけを使用している場合は、長押しイベントが機能してキャッチし、ImageButtonを追加するとすぐに長押しイベントが機能しなくなることです。なぜこれが起こっているのか考えていますか?
アイテムレイアウトにクリック可能なビュー(ボタンなど)を追加すると、クリックイベントがキャッチされ、基ListView
になるビューにバブルされません。これを修正するには、アイテムのルートレイアウトにロングクリックリスナーを追加できます。
したがって、アクティビティでこれを行う代わりに、次のようにします。
ListView lv = (ListView) findViewById(R.id.lv);
lv.setOnItemLongClickListener(listener);
これはアダプタで行います。
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.item, parent, false);
view.setLongClickable(true);
view.setOnLongClickListener(listener);
}