Android Touch Click vs Programatic Click

时间:2015-06-19 18:58:24

标签: android listview android-listview

我一直在努力获取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。

如何解决此问题,以便在使用物理触控或语音识别时更改所选项目的状态?

由于

0 个答案:

没有答案