0

我的 ListView 项目有一个自定义选择器。这是它的样子:

<item android:drawable="@color/transparent" android:state_activated="false"/>
<item android:drawable="@color/blue" android:state_activated="true"/>

当我点击一个项目时,它的背景变成蓝色。我想通过代码执行此“点击”,但即使我已经知道孩子在 ListView 中的位置,我也不知道要调用什么方法。


实际上,我真正想要的是在不触发 onListItemClick() 的情况下更改一行的背景(类似于点击它时)。

4

3 回答 3

2

我想通过代码做这个“点击”

获取您想要的行(它必须在屏幕上)并调用performClick()或者您可以使用setActivated(true)(我从未尝试过这种方法。)

于 2013-03-08T20:35:48.917 回答
0

将选择器更改为打开android:state_selected="true",然后使用listView.setSelection(index);

于 2013-03-09T03:23:09.937 回答
0

如果您尝试模拟触摸事件会怎样?也许不是最干净的答案,但是...

获取您想要的行的视图然后调用

rowView.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
于 2013-03-08T21:27:32.543 回答