我正在尝试使用之前的&下一步按钮。当我按或触摸时,我能够在列表视图中突出显示所选项目。 但是当我按照程序执行时无法突出显示自定义颜色的行。
问题
当我按上一个按钮时,会运行一个查询,检查用户是否为该特殊问题选择了一个选项。如果是,则该位置的项目会被选中并突出显示,但突出显示的颜色为蓝色。 这是主题app.combat.light我猜。
我如何设置项目检查:
listviewoptions.setItemChecked(iposition, true);
//here iposition is a int variable called from db via query.
将其绑定到列表的代码
List<String> options = db.getAllOptions(QuestionID);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_activated_1, android.R.id.text1, options);
listviewoptions.setAdapter(adapter);
答案 0 :(得分:1)
在您点击的列表项上,您需要致电:
selectedItemView.setActivated(true);
你的列表选择器状态drawable应该声明这个状态:
<item android:drawable="@color/grey_07" android:state_activated="true" android:state_focused="false" android:state_pressed="false"/>
答案 1 :(得分:1)
到目前为止,您在程序中所做的事情很好但是对简单列表项使用自定义布局。我相信你使用的是android.R.layout.simple_list_item_activated_1。
创建自己的项目布局,因为它只是一个textView,就像这样
your.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/yourselector" />
然后在drawable中定义一个选择器
yourselector.xml
<item android:state_pressed="true">
<shape>
<solid android:color="@color/color_slide_menu_item_pressed" />
</shape>
</item>
<item android:state_activated="true">
<shape>
<solid android:color="@color/color_slide_menu_item_activated" />
</shape>
</item>
<item>
<shape>
<solid android:color="@color/color_main_theme_background" />
</shape>
</item>
注意:定义自己的颜色,您可以直接在那里定义颜色或其他颜色资源
然后在您的适配器上更改布局
android.R.layout.simple_list_item_activated_1
到
R.layout.your