Android 初始选择未在ListView中突出显示?
我已经搜索了好几天,试图找到为什么我不能得到一个简单的列表视图来突出显示一个初始选择-就像选择已经被触摸一样。我已经阅读了有关触摸模式的讨论,但仍然无法找到解决方案 我的代码的简单版本是:Android 初始选择未在ListView中突出显示?,android,listview,selection,highlighting,Android,Listview,Selection,Highlighting,我已经搜索了好几天,试图找到为什么我不能得到一个简单的列表视图来突出显示一个初始选择-就像选择已经被触摸一样。我已经阅读了有关触摸模式的讨论,但仍然无法找到解决方案 我的代码的简单版本是: public class TestList extends Activity { public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.listmain);
public class TestList extends Activity {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.listmain);
// Layout contains just a ListView with id list
final ListView listView = (ListView) findViewById(R.id.list);
String[] values = new String[] {"Android","iPhone","WindowsMobile",
"Blackberry","WebOS","Ubuntu","Windows7","Max OS X","Linux","OS/2"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_checked, values);
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setSelector(android.R.color.holo_orange_dark);
listView.requestFocusFromTouch();
listView.post(new Runnable() {
@Override
public void run() {
listView.setSelection(2);
}
});
}
}
生成的ListView应高亮显示项目2 WindowsMobile,但不会。如果我触摸到该项目,它将保持高亮显示,如我所愿。我已经尝试了所有标准的简单列表布局形式,如setFocusabletrue、setFocusableInTouchModetrue、setItemChecked2、true、performItemClick等函数—在setSelection调用之前或之后—但都没有用。
如果我尝试在GetView中设置突出显示的项目,则用户选择其他项目的功能将丢失。
有谁能告诉我如何通过编程设置初始突出显示的项目,而不禁用用户更改选择的功能
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#FFCC00"
android:dividerHeight="1dp" >
</ListView>
这个问题似乎是因为ListView选择器不能正常工作。例如,我发现,如果我使用白色背景的选择器,我的初始选择将高亮显示,但只需将颜色更改为白色以外的颜色,它就不起作用 因此,代码更改为:
listView.setSelector(R.drawable.selector);
selector.xml是:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
<item android:drawable="@android:color/holo_orange_dark" android:state_pressed="true"/>
<item android:drawable="@android:color/holo_green_light" android:state_selected="true"/>
<item android:drawable="@android:color/holo_green_dark" android:state_activated="true"/>
<item android:drawable="@android:color/white" />
</selector>
我尝试过各种选择器,包括单独的背景选择器。有些工作,有些没有。有些在apk首次加载时工作,但在应用程序再次运行时不工作