我头疼得厉害,花了几个小时来解决我的问题,没有任何合理的结果。
我使用自定义适配器(扩展ArrayAdapter
)来显示listview项目。此适配器实现OnTouchListener
。还有一个背景选择器,当触摸某个项目时,颜色会发生变化,而OnItemClickListener
中会ListViewActivity
。
我需要的是在适配器中捕获触摸事件(所有这些事件,而不仅仅是ACTION_DOWN
)。当onTouch
返回false时,不会捕获连续事件(ACTION_CANCEL
,ACTION_UP
等)。另一方面,返回true会停止调度所有其他事件(例如,单击),以便从不触发ListViewActivity的onItemClick
。
我努力在SO和其他资源中找到任何可行的解决方案,但没有成功。
一个想法是不担心点击事件和背景。当onTouch
操作为ACTION_UP
时,我可以以编程方式设置背景并触发点击事件,但view.performClick()
不执行任何操作(视图是onTouch
方法的第一个参数)
[编辑]
为了说清楚,我想处理适配器中的触摸事件,因为当用户触摸它时,我需要项目中的textview到字幕。因此,在onTouch
中,当操作等于ACTION_DOWN
时,我会将true
分配给textview的setSelected属性,因此false
时ACTION_CANCEL
或{{ACTION_UP
1}}。
有什么建议吗?
提前致谢。