1. ホーム
  2. android

[解決済み] リストビューにロングクリックリスナーを実装する方法

2022-04-26 07:25:52

質問

を追加したいのですが OnLongClickListener をリストビューに追加しました。ユーザーがリスト内のアイテムを長押しすると、何らかのアクションが実行されるはずですが、私のコードはこのリスナーをキャッチしていません。私は間違っている場所を教えてください。同様のコードは setOnItemClickListener とてもよくできました。

以下はそのコードです。

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;
            }
}); 

解決方法は?

を設定する必要があります。 setOnItemLongClickListener() を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;
            }
        }); 

リストの各項目のXML(カスタムXMLを使用する場合)には、必ず android:longClickable="true" を使うこともできます(あるいは便宜上 lv.setLongClickable(true); ). こうすることで、ロングクリックに反応する項目があるだけのリストを作成することができます。

ご参考になれば幸いです。