リストビューにロングクリックリスナーを実装する方法 質問する

リストビューにロングクリックリスナーを実装する方法 質問する

リスト ビューに追加したいです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;
            }
}); 

ベストアンサー1

設定する必要があります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);)。この方法では、一部の項目だけがロングクリックに応答するリストを作成できます。

これがお役に立てば幸いです。

おすすめ記事