长按监听器从未被触发

7

我有一个自定义的listView,定义如下:

public class DDListView extends ListView implements OnScrollChangedListener {

我创建了一个名为mExampleList的实例,并设置了onLongClickListener,但它从未被调用,我的问题在哪里?
mExampleList.setOnLongClickListener(new OnLongClickListener() {

        public boolean onLongClick(View v) {
            // TODO Auto-generated method stub
            Log.v("vvv", "sdfsdf");
            return false;
        }
    });
2个回答

10

没有OnLongItemClickListener。 - Selvin
@Selvin http://developer.android.com/reference/android/widget/AdapterView.OnItemLongClickListener.html - ahodder
1
  1. 列表视图只有ListView.setOnLongClickListener(View.OnLongClickListener l)!
  2. ListView没有名为setOnLongItemClickListener的方法。
  3. 添加LongItemCLick的最简单方法/技巧是registerForContextMenu! 编辑: 在您的链接中,您指向AdapterView.OnItemLongClickListener...问题:ListView是否实现它?
- Selvin
@Selvin 是的,确实如此。看文档。我有一个使用OnItemLongClickListener的应用程序。两次。而且,我认为使用OnItemClickListener最简单的方法就是使用OnItemClickListener。 - ahodder
@AedonEtLIRA 真的...你是对的...我一直以为 setOnItemLongClickListener 被隐藏了,因为 Eclipse 的 "智能感知" 没有显示这个方法给我。 - Selvin
显示剩余2条评论

0

嗯,你是想让所有的ListView都可以长按吗?

一些小提示:

-首先尝试确认正常的OnClick事件是否被触发;

-检查一下你是否设置了setClickeable(true);;

-确保你真的需要这样做,而不是仅仅想要在列表中的项目上执行普通的onItemClick()方法(如果是这样,可以重写函数:
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接