ListView:在长按每行中的imageview后向上移动手指时,调用了onItemClick函数

时间:2012-11-02 14:06:55

标签: android listview imageview

我有关于ListView的问题。首先,这个问题只发生在我真正的Android设备上,它在模拟器上运行正常。

1我有一个ListView:listVew。在它的每一行中,都有一个imageView:picView。我在自定义适配器中为图像视图设置了一个长按监听器:

picView.setOnLongClickListener(new View.OnLongClickListener()
{
   public boolean onLongClick(View v) 
   {
        ...
   }
}

当我长时间点击imageView时,它会移动。

2在我的Activity类中,我在listView的每个项目上设置OnItemClick Listener。

listView.setOnItemClickListener(new OnItemClickListener()
{
    public void onItemClick(AdapterView<?> parent, View view,int position, long id)
    {
        ...
    }
}

问题是,在真实设备中,当我长时间单击imageView并向上移动手指时,OnItemClick方法被激活。在模拟器中,这从未发生过。

有谁知道为什么会这样?非常感谢!

添加:

我在模拟器中测试了很多次,现在我认为这个问题现在很容易描述:

当设备检测到longclicklistener时,有没有办法禁用其他TouchEvent侦听器?

1 个答案:

答案 0 :(得分:1)

我认为您需要拦截listview的触摸事件。因此,尝试在Adapter.getView()

中设置OnClickListener
View getView(View convertView, int position, ViewGroup parent){
    convertView.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            onItemClick(parent, convertView, position, 0);
        }
    });
    return convertView;
}