【发布时间】:2016-04-13 00:08:49
【问题描述】:
是否可以在 ListView 中知道某个项目是否被按下/触摸(但未点击)并知道哪个?
我尝试使用“OnTouchListener”但没有成功(我可以拦截 ListView 上的 UP 和 Down 事件,但不能拦截元素上的事件)。
我也尝试了“OnItemLongClickListener”,但当我需要立即获得信息时,我必须等待。
你有什么想法吗?
提前谢谢你。
编辑(解决方案):
我将以下代码放在项目视图的适配器中。
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
image.setImageResource(R.drawable.image2);
}
else if (event.getAction() == MotionEvent.ACTION_UP) {
image.setImageResource(R.drawable.image1);
}
return true;
}
});
现在,当我触摸一个项目时,图片变为“image2”,当我不触摸屏幕时,它返回“image1”。
但是有一个问题,如果我按下一个项目(image2 显示良好)并且我在列表视图中移动手指并且我没有触摸屏幕,它会为 image2 保持打开状态,“MotionEvent.ACTION_UP”可以不执行。 只要我不触摸屏幕,它就必须返回到 image1,你知道该怎么做吗?
感谢您的帮助。
【问题讨论】:
标签: android listview items pressed