Android:simple_list_item_activated_1:Listview更改默认的蓝色

时间:2015-08-14 06:28:43

标签: android css listview

我正在尝试使用之前的&下一步按钮。当我按或触摸时,我能够在列表视图中突出显示所选项目。 但是当我按照程序执行时无法突出显示自定义颜色的行。

问题

当我按上一个按钮时,会运行一个查询,检查用户是否为该特殊问题选择了一个选项。如果是,则该位置的项目会被选中并突出显示,但突出显示的颜色为蓝色。 这是主题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);

2 个答案:

答案 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