mainActivity如下:
package cn.testlistviewcolor; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; import android.widget.SimpleAdapter; //小功能: //1 点击ListView的item时,item的颜色(或者背景图片)发生变化 //2 与此同时,item中的TextView里的字体颜色发生变化 public class MainActivity extends Activity { private ListView listView; private ArrayList<HashMap<String, Object>> arrayList; private HashMap<String, Object> hashMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) findViewById(R.id.listView); arrayList = new ArrayList<HashMap<String, Object>>(); for(int i=0; i<5; i++) { hashMap = new HashMap<String, Object>(); hashMap.put("data", "Test" + i); arrayList.add(hashMap); } SimpleAdapter simple = new SimpleAdapter(this, arrayList, R.layout.list_item, new String[]{"data"},new int[]{R.id.textView}); listView.setAdapter(simple); } }
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout>
list_item.xml如下:
<?xml version="1.0" encoding="utf-8"?> <!-- @drawable/bg_selector1为 item背景图变换 --> <!-- @drawable/bg_selector2为 item背景色变换 --> <!-- @drawable/textcolor_selector为点击和未点击时TextView上的文字颜色的切换 --> <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/bg_selector1" > <TextView android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:textColor="@drawable/textcolor_selector" /> </LinearLayout>
bg_selector1.xml如下:
<?xml version="1.0" encoding="utf-8" ?> <!--当点击和平常状况下显示不同的背景图片 --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/ha" /> <item android:drawable="@drawable/ic_launcher" /> </selector>
bg_selector2.xml如下:
<?xml version="1.0" encoding="utf-8" ?> <!--当点击和平常状况下显示不同的颜色 --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/red" /> <item android:drawable="@color/green" /> </selector>
textcolor_selector.xml如下:
<?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/white" /> <!-- focused --> <item android:state_pressed="true" android:color="@color/white" /> <!-- pressed --> <item android:state_selected="true" android:color="@color/white" /> <!-- pressed --> <item android:color="@color/black" /> <!-- default --> </selector>