ListView 点击Item的时候,改变文字颜色和背景色
2014-06-10 13:51
751 查看
代码
list.xml
[java]
view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
list_item.xml
[java]
view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/item_type" <!-- item背景色变换 -->
>
<TextView
android:id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:layout_margin="5dp"
android:textColor="@drawable/item_selector" <!-- item文字颜色变换 -->
/>
</LinearLayout>
再写一个selector用来做颜色变换
[java]
view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/text_type02" /> <!-- focused -->
<item android:state_pressed="true" android:color="@color/text_type02" /> <!-- pressed -->
<item android:state_selected="true" android:color="@color/text_type02" /> <!-- pressed -->
<item android:color="@color/text_type01" /> <!-- default -->
</selector>
然后到activity中
[java]
view plaincopy
list = (ListView) findViewById(R.id.list);
data = new ArrayList<HashMap<String, Object>>();
for(int i=0; i<5; i++) {
map = new HashMap<String, Object>();
map.put("data", "Test" + i);
data.add(map);
}
SimpleAdapter simple = new SimpleAdapter(this, data, R.layout.list_item, new String[]{"data"},new int[]{R.id.txt});
list.setAdapter(simple);
TextView 还要增加个属性
android:duplicateParentState="true"
这样才会跟随ParentView的状态来变化
这样就可以实现效果了。
不使用系统的,尽量自定义
使用系统的试过几个不知道哪里不对,一直没生效,这样写就可以了。
list.xml
[java]
view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
list_item.xml
[java]
view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/item_type" <!-- item背景色变换 -->
>
<TextView
android:id="@+id/txt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:layout_margin="5dp"
android:textColor="@drawable/item_selector" <!-- item文字颜色变换 -->
/>
</LinearLayout>
再写一个selector用来做颜色变换
[java]
view plaincopy
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="@color/text_type02" /> <!-- focused -->
<item android:state_pressed="true" android:color="@color/text_type02" /> <!-- pressed -->
<item android:state_selected="true" android:color="@color/text_type02" /> <!-- pressed -->
<item android:color="@color/text_type01" /> <!-- default -->
</selector>
然后到activity中
[java]
view plaincopy
list = (ListView) findViewById(R.id.list);
data = new ArrayList<HashMap<String, Object>>();
for(int i=0; i<5; i++) {
map = new HashMap<String, Object>();
map.put("data", "Test" + i);
data.add(map);
}
SimpleAdapter simple = new SimpleAdapter(this, data, R.layout.list_item, new String[]{"data"},new int[]{R.id.txt});
list.setAdapter(simple);
TextView 还要增加个属性
android:duplicateParentState="true"
这样才会跟随ParentView的状态来变化
这样就可以实现效果了。
不使用系统的,尽量自定义
使用系统的试过几个不知道哪里不对,一直没生效,这样写就可以了。
相关文章推荐
- AndroidListView点击Item的时候 改变文字颜色和背景色
- Android ListView 点击Item的时候,改变文字颜色和背景色
- android listView 点击Item的时候,改变文字颜色和背景色
- ListView 点击Item的时候,改变文字颜色和背景色
- ListView 点击Item的时候,改变文字颜色和背景色
- 点击listview的时候listitem不改变背景色
- 点击listviewItem后,改变当前Item背景色和字体颜色,其他不变
- ListView中TextView和item背景点击改变颜色
- Android开发实现ListView点击item改变颜色功能示例
- 如何让listview点击item的时候不变颜色
- 实现listview条目点击后改变item背景颜色和字体颜色并保留
- ListView中的Button点击后相应的Item改变背景颜色
- android listview内的TextView会在点击item的时候灰变背景颜色
- 解决: 用代码改变listview的item背景色时,点击一个item,每隔几个item背景色重复
- ListView点击后改变item颜色的Demo
- android中listView点击对应item并改变button的文字
- listview、GridView单点击效果,点击改变背景改变item字体颜色实现
- 去掉listview的item点击时候的背景颜色
- ListView中设置item的背景色后,默认的行点击颜色失效的解决办法
- ListView中item点击的时候颜色变化