Android ListView选择器同时更改背景图像和文本颜色

时间:2015-10-26 12:41:05

标签: android listview

这是我的选择器xml。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:drawable="@drawable/listview_bg" />
<item android:state_focused="true" android:drawable="@drawable/listview" />
 <item android:state_window_focused="false" android:drawable="@drawable/listview_bg" />   
</selector>

我想同时更改背景图片和文字颜色, 我该如何修改xml代码?

我尝试在每个项目行添加android:color="#FFFFFF",但它无效。

2 个答案:

答案 0 :(得分:0)

您向我们展示的是 drawable 选择器。因此它将根据视图的状态(按下,聚焦,......)选择drawable。

您需要使用相同的图案,但需要使用颜色。在color目录中创建一个目录res,在color内创建一个文件selectable_color.xml

在此文件中,输入以下内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#FF0000" />
    <item android:color="#00FF00" />
</selector>

因此,按下时selectable_color将为红色,否则为蓝色。现在,在文字视图或按钮中,照常使用此颜色android:textColor:@color/selectable_color。现在,当用户按下视图时,其文本颜色将从蓝色变为红色。

然而,如果按下的不是您要寻找的状态,请不要犹豫它,它与可绘制的一样。

答案 1 :(得分:-1)

我在项目中使用了以下代码:

ListView listview = (ListView)findViewById(R.id.listView1);

    /*Initialize values with values*/
    ArrayList<String> listItems = new ArrayList<String>();

    ArrayAdapter<String> adapter;
    //adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listItems);

    adapter=new ArrayAdapter<String>(this,R.layout.list_view_item,listItems);

    listItems.add("WebTouch Tab 1");
    listItems.add("WebTouch Tab 2");
    listItems.add("WebTouch Tab 3");
    listItems.add("WebTouch Tab 4");
    listItems.add("WebTouch Tab 5");
    listItems.add("WebTouch Tab 6");
    listItems.add("WebTouch Tab 7");
    listItems.add("WebTouch Tab 8");
    listItems.add("WebTouch Tab 9");
    listItems.add("WebTouch Tab 10");

list_view_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv_list_view"
android:textColor="#6699FF"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="18sp"
android:paddingTop="10sp"
android:paddingBottom="10sp"
android:paddingLeft="5sp"/>

这样您就可以设置文本颜色和字体。我不知道背景颜色的事情。