您的位置:首页 > 移动开发 > Android开发

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

2015-05-14 16:07 661 查看
效果图如下:



list.xml:

viewsourceprint?

01.
<?xmlversion=
"1.0"

encoding=
"utf-8"
?>

02.
<LinearLayoutxmlns: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:

viewsourceprint?

01.
<?xmlversion=
"1.0"

encoding=
"utf-8"
?>

02.
<LinearLayoutxmlns: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:

viewsourceprint?

01.
<?xmlversion=
"1.0"

encoding=
"utf-8"
?>

02.
<selectorxmlns:android=
"http://schemas.android.com/apk/res/android"
>

03.

04.
<!--没有焦点时的背景颜色-->

05.
<itemandroid:drawable=
"@color/unfocused"

android:state_window_focused=
"false"
/>

06.
<!--非触摸模式下获得焦点并单击时的背景颜色-->

07.
<itemandroid:drawable=
"@color/pressed"

android:state_focused=
"true"

android:state_pressed=
"true"
/>

08.
<!--触摸模式下单击时的背景颜色-->

09.
<itemandroid:drawable=
"@color/pressed"

android:state_focused=
"false"

android:state_pressed=
"true"
/>

10.
<!--选中时的背景颜色-->

11.
<itemandroid:drawable=
"@color/pressed"

android:state_selected=
"true"
/>

12.
<!--获得焦点时的背景颜色-->

13.
<itemandroid:drawable=
"@color/pressed"

android:state_focused=
"true"
/>

14.

15.
</selector>


font_selector:

viewsourceprint?

1.
<?xmlversion=
"1.0"

encoding=
"utf-8"
?>

2.
<selectorxmlns:android=
"http://schemas.android.com/apk/res/android"
>

3.
<itemandroid:state_focused=
"true"

android:color=
"#ff0030"

/><!--focused-->

4.
<itemandroid:state_pressed=
"true"

android:color=
"#ff0030"

/><!--pressed-->

5.
<itemandroid:state_selected=
"true"

android:color=
"#ff0030"

/><!--pressed-->

6.
<itemandroid:color=
"#222222"

/><!--
default

-->

7.
</selector>


activity:

viewsourceprint?

01.
listView=(ListView)contentView1.findViewById(R.id.list);

02.
ArrayList<HashMap<String,String>>data=
new
ArrayList<HashMap<String,String>>();

03.
for

(Stringi:name){

04.
HashMap<String,String>map=
new
HashMap<String,String>();

05.
map.put(
"data"
,i);

06.
data.add(map);

07.
}

08.
SimpleAdaptersimple=
new
SimpleAdapter(getActivity(),data,

09.
R.layout.layout_popup_item,
new
String[]{
"data"

},

10.
new

int
[]{R.id.text1});

11.
listView.setAdapter(simple);


注意:

TextView还要增加个属性

android:duplicateParentState="true"

这样才会跟随ParentView的状态来变化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: