我有关于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侦听器?
答案 0 :(得分:1)
我认为您需要拦截listview的触摸事件。因此,尝试在Adapter.getView()
中设置OnClickListenerView getView(View convertView, int position, ViewGroup parent){
convertView.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
onItemClick(parent, convertView, position, 0);
}
});
return convertView;
}