Android - ListView中的Pressed / Touched项目

时间:2016-04-13 00:08:50

标签: android listview items pressed

是否可以在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”。

但是有一个问题,如果我按下一个项目(图像2看起来很好)并且我在列表视图中移动我的手指并且我没有触摸屏幕,它会保持在图像2上,“MotionEvent.ACTION_UP”可以不执行。 你有任何想法,一旦我不触摸屏幕,它必须返回图像1?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以在适配器创建时将SetOnTouchListener设置为项目视图。

答案 1 :(得分:0)

您只是尝试实现监听器,然后您可以覆盖该功能或者请添加您的粗略工作部分