是否可以在 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 上?
谢谢您的帮助。