[英]In Android how do you use a selector on a ListView to change the background color that will allow the text to appear as well?
[英]Android ListView selector change background image and text color at the same time
这是我的选择器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"
,但是它不起作用。
您显示给我们的是一个可绘制的选择器。 因此,它将根据视图状态(按下,聚焦,...)选择可绘制对象。
您需要使用相同的图案,但要使用颜色。 在res
目录中创建目录color
,并在该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
。 现在,当用户按下视图时,其文本颜色将从蓝色变为红色。
但是,如果按下的不是您想要的状态,请毫不犹豫地更改它,这与绘制对象相同。
我在项目中使用了以下代码:
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"/>
这样,您可以设置文本的颜色和字体。 我对背景色一无所知。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.