我的ListView项目有自定义选择器。这就是它的样子:
<item android:drawable="@color/transparent" android:state_activated="false"/>
<item android:drawable="@color/blue" android:state_activated="true"/>
当我点击某个项目时,它的背景变为蓝色。我想通过代码进行“点击”,但即使我已经知道孩子在ListView中的位置,我也不知道要调用什么方法。
实际上,我真正想要的是在不触发onListItemClick()的情况下更改行的背景(类似于点击时)。
答案 0 :(得分:2)
我想通过代码
进行“点击”
获取您想要的行(它必须在屏幕上)并调用performClick()
或者您可以使用setActivated(true)
(我从未尝试过这种方法。)
答案 1 :(得分:0)
如果您尝试模拟触摸事件怎么办?也许不是最干净的答案,但是......
获取所需的行视图,然后调用
rowView.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
答案 2 :(得分:0)
更改您的选择器以在android:state_selected="true"
上切换,然后使用listView.setSelection(index)
;