AndroidListView点击Item的时候 改变文字颜色和背景色

来源:互联网 发布:php数据库输出乱码 编辑:程序博客网 时间:2024/04/28 15:08

效果图如下:

\

list.xml:

 

view sourceprint?
01.<?xml version="1.0"encoding="utf-8"?>
02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03.    android:layout_width="fill_parent"
04.    android:layout_height="wrap_content"
05.    android:orientation="vertical"
06.    android:background="#ffffff"
07.    android:paddingTop="10dp">
08.  
09.    <TextView
10.        android:id="@+id/text"
11.        android:layout_width="fill_parent"
12.        android:layout_height="wrap_content"
13.        android:gravity="center"
14.        android:textSize="20sp"/>
15.  
16.    <View
17.        android:layout_width="match_parent"
18.        android:layout_height="1dp"
19.        android:layout_marginTop="10dp"
20.        android:background="#e6e6e6"/>
21.  
22.    <ListView
23.        android:id="@+id/list"
24.        android:layout_width="match_parent"
25.        android:layout_height="wrap_content">
26.    </ListView>
27.  
28.</LinearLayout>
list_item.xml:

 

 

view sourceprint?
01.<?xml version="1.0"encoding="utf-8"?>
02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
03.    android:layout_width="fill_parent"
04.    android:layout_height="fill_parent"
05.    android:paddingLeft="20dp"
06.    android:paddingTop="10dp"
07.    android:paddingBottom="10dp"
08.    android:background="@drawable/listitem_selector">
09.  
10.    <TextView
11.        android:id="@+id/text1"
12.        android:layout_width="wrap_content"
13.        android:layout_height="wrap_content"
14.        android:textColor="@drawable/font_selector"
15.        android:duplicateParentState="true"
16.        android:gravity="center_vertical"
17.        android:textSize="18sp"/>
18.  
19.</LinearLayout>

 

listitem_selector:

 

view sourceprint?
01.<?xml version="1.0"encoding="utf-8"?>
02.<selector xmlns:android="http://schemas.android.com/apk/res/android">
03.  
04.    <!-- 没有焦点时的背景颜色 -->
05.    <item android:drawable="@color/unfocused"android:state_window_focused="false"/>
06.    <!-- 非触摸模式下获得焦点并单击时的背景颜色 -->
07.    <item android:drawable="@color/pressed"android:state_focused="true"android:state_pressed="true"/>
08.    <!-- 触摸模式下单击时的背景颜色 -->
09.    <item android:drawable="@color/pressed"android:state_focused="false"android:state_pressed="true"/>
10.    <!-- 选中时的背景颜色 -->
11.    <item android:drawable="@color/pressed"android:state_selected="true"/>
12.    <!-- 获得焦点时的背景  颜色 -->
13.    <item android:drawable="@color/pressed"android:state_focused="true"/>
14.  
15.</selector>

 

font_selector:

 

view sourceprint?
1.<?xml version="1.0"encoding="utf-8"?>
2.<selector xmlns:android="http://schemas.android.com/apk/res/android">
3.    <item android:state_focused="true"android:color="#ff0030" /> <!-- focused -->
4.    <item android:state_pressed="true"android:color="#ff0030" /> <!-- pressed -->
5.    <item android:state_selected="true"android:color="#ff0030" /> <!-- pressed -->
6.    <item android:color="#222222"/> <!-- default -->
7.</selector>
activity:

 

 

view sourceprint?
01.listView = (ListView) contentView1.findViewById(R.id.list);
02.        ArrayList<HashMap<String, String>> data =new ArrayList<HashMap<String, String>>();
03.        for(String i : name) {
04.            HashMap<String, String> map =new HashMap<String, String>();
05.            map.put("data", i);
06.            data.add(map);
07.        }
08.        SimpleAdapter simple =new SimpleAdapter(getActivity(), data,
09.                R.layout.layout_popup_item,new String[] { "data"},
10.                newint[] { R.id.text1 });
11.        listView.setAdapter(simple);

 

 

注意:

TextView 还要增加个属性

android:duplicateParentState="true"

这样才会跟随ParentView的状态来变化

3 0
原创粉丝点击