如何在listview上实现长时间单击侦听器

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我想补充一下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);)。这样,就可以有一个列表,其中只有一些项目响应长击。

用户回答回答于

如果ListView项引用单独的xml文件,请确保添加android:longClickable="true"除了设置之外,还添加到该布局文件中。setOnItemLongClickListener()到你的ListView。

扫码关注云+社区