长按监听器ListActivity类

3

我有一个使用ListView的应用程序,我已经设置了onListItemClick事件以查看有关联系人的详细信息,我想实现onLongListItemClick来显示对话框,但我不知道为什么它不起作用,我的意思是什么也没有发生,我尝试过如下:

public void onListItemClick(ListView parent, View v, int position, long id) 
{   
    //code
}

public void onLongListItemClick(ListView parent, View v, int position, long id) 
{   
    showdialog();
}

你如何添加监听器?你是否将 onLongListItemClick 方法传递进去? - Snicolas
它位于扩展ListActivity的类中,onListItemClick正常工作。 - E Vlad
还有,你如何注册你的监听器? - Snicolas
我的意思是你是否会像listView().setOnItemLongClickListener(new OnItemLongClickListener(){})这样做? - Snicolas
在onLongListItemClick方法的第一行打印一些日志,看看这个方法是否被执行。 - jeet
显示剩余3条评论
1个回答

10

试试这样做:

listview.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            Toast.makeText(getApplicationContext(), "Long Clicked : ", Toast.LENGTH_LONG).show();
            return true;
        }
});

否则,一旦你松开触摸,它将转移控制给单个点击事件监听器,因此你需要在这里添加return true;

希望能对你有所帮助。

谢谢。


我是新手,我必须拥有15个声望 :) - E Vlad
我会将监听器的实现放在一个私有内部类中。这样更好地封装了处理代码。例如: getListView().setOnItemLongClickListener(new LongOnItemClickHandler()); - Steve Gelman

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