我一直在努力获取Listview选择项目以更改背景颜色,现在已经将问题归结为问题的实际来源 - 所以现在我需要帮助来解决它。
我有一个Listview,可以通过物理触摸或语音识别来选择所选项目。
我还有以下代码,当使用任何一种选择方法时都会执行
listLocations.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object pickedItem = listLocations.getItemAtPosition(position);
view.setSelected(true);
view.setPressed(true);
}
});
此外,我在Listview中配置了一个选择器,以便根据所选项目的状态更改所选项目背景颜色
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="false" android:drawable="@color/orange_500" />
<item android:state_pressed="false" android:drawable="@color/blue_500" />
<item android:state_focused="false" android:drawable="@color/green_500" />
<item android:state_active="false" android:drawable="@color/red_600" />
<item android:state_checked="false" android:drawable="@color/purple_500" />
<item android:drawable="@color/transparent" />
</selector>
当在Listview GUI上使用物理触摸进行项目选择时,这很好用。
但是当使用语音识别时,onItemClick()代码执行正常,但看起来好像Item State没有真正改变 - 因为Selector永远不会改变所选Item的Background Color。
如何解决此问题,以便在使用物理触控或语音识别时更改所选项目的状态?
由于