Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓触摸点击与程序点击_Android_Listview_Android Listview - Fatal编程技术网

Android 安卓触摸点击与程序点击

Android 安卓触摸点击与程序点击,android,listview,android-listview,Android,Listview,Android Listview,我一直在努力让Listview选中的项目改变背景颜色,现在已经把注意力集中在问题的实际来源上-所以现在我需要帮助来解决它 我有一个列表视图,可以通过触摸或语音识别来选择所选项目 我还有下面的代码,当使用任一选择方法时执行 listLocations.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int posi

我一直在努力让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);
      }
  });  
listLocations.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
对象pickedItem=listLocations.getItemAtPosition(位置);
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()代码执行得很好,但似乎项目状态并未真正更改,因为选择器从未更改选定项目的背景颜色

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


谢谢

如何以编程方式单击?我使用了函数:MyList.performItemClick(),并包含了各种定义参数:MyList和所选ListViewId您是否调用了view.setSelected(true);view.setPressed(true);关于你想通过语音关注的观点?谢谢你的回复。是-当语音识别返回其值时,我询问数据源以查找该项在Listview中的位置(哪个Listview ID)。然后,我用“配对液”,1。使用以下选项选择该列表视图项:parkingSpaceList.setSelection(matchingLotID);parkingSpaceList.refreshDrawableState();并使用parkingSpaceList.setPressed(true);parkingSpaceList.refreshDrawableState();按下该项,最后启动MyList.performItemClick()方法,该方法再次设置setPressed()在所有这些之后,所选项目的背景颜色应该会改变以反映其当前状态。这对于物理触摸很好,但在这样的编程“触摸”上看不到任何变化。