ListView点击时Item背景切换

简介: mainActivity如下: package cn.testlistviewcolor; import java.util.ArrayList; import java.

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>


 

相关文章
|
Android开发
Android 使用ViewPager实现手动左右切换页面和底部点点跟随切换效果
Android 使用ViewPager实现手动左右切换页面和底部点点跟随切换效果
180 0
|
API
scroll-view回到顶部功能的实现
在我最近写的一个项目中就有这样的一个需求,即无限滚动卡片列表中实现回到顶部,与已往的返回顶部功能不同,因为是通过scroll-view来实现的无限列表滚动,所以返沪顶部需要依靠scroll-view的一些特定属性和api,下面我将带大家分析,实现这个功能。
497 1
scroll-view回到顶部功能的实现
|
前端开发 Android开发 iOS开发
Andorid分组Item顶部悬停 + 交互同步
  项目中某些页面中的分组数据的顶部需要悬停,并且悬停的View要与ItemView中同样布局的View进行操作同步,也就是相互同步。大家都知道,Android中有"The specified child already has a parent. You must call removeView() on the child's parent first."这个异常,意味着同一个View对象不能有两个Parent。我们就不能简单粗暴的将同一个View对象添加进两个parent了,需要另谋出路。
|
XML JSON Java
Android RecyclerVIew 列表实现 编辑、单选、全选、删除、动画效果(附源码)
Android RecyclerVIew 列表实现 编辑、单选、全选、删除、动画效果(附源码)
500 0
Android RecyclerVIew 列表实现 编辑、单选、全选、删除、动画效果(附源码)
|
Android开发 架构师
Item点击水波纹效果
先上效果图   ripple的使用(需要V21以上) 其中item的颜色是控件正常状态的背景色,ripple中的颜色是点击时出现的颜色(会以半透明的形式展示出来)。
1445 0
(C#)ListView双击Item事件
ListView没有Item的双击事件,只能通过变通的方法得到,以下是我的变通方法        private void listView右侧_MouseDoubleClick( object sender , MouseEventArgs e )        {            ListViewHitTestInfo info = listView右侧.
1204 0