Android 安卓触摸点击与程序点击
我一直在努力让Listview选中的项目改变背景颜色,现在已经把注意力集中在问题的实际来源上-所以现在我需要帮助来解决它 我有一个列表视图,可以通过触摸或语音识别来选择所选项目 我还有下面的代码,当使用任一选择方法时执行Android 安卓触摸点击与程序点击,android,listview,android-listview,Android,Listview,Android Listview,我一直在努力让Listview选中的项目改变背景颜色,现在已经把注意力集中在问题的实际来源上-所以现在我需要帮助来解决它 我有一个列表视图,可以通过触摸或语音识别来选择所选项目 我还有下面的代码,当使用任一选择方法时执行 listLocations.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int posi
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()在所有这些之后,所选项目的背景颜色应该会改变以反映其当前状态。这对于物理触摸很好,但在这样的编程“触摸”上看不到任何变化。