整理::ListView的各种隔行换色法

原创 2013年12月05日 15:25:34

隔行换色 ListView:1.使用BaseAdapter

package com.xsjayz.listview0822;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class ListViewActivity extends Activity {

	private String[] moreNames = null;
	private ListView listView = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 在string中定义的字符串数组
		moreNames = getResources().getStringArray(R.array.list_array);
		// 在main.xml中定义的listview
		listView = (ListView) findViewById(R.id.listViewMoreInfo);

		// 隐藏ListView的分隔线
		listView.setDivider(null);
		listView.setAdapter(baseAdapter);

		listView.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> view, View arg1,
					int position, long id) {

				switch (position) {
				case 0:
					toastUtil(ListViewActivity.this, position);
					break;
				case 1:
					toastUtil(ListViewActivity.this, position);
					break;
				case 2:
					toastUtil(ListViewActivity.this, position);
					break;
				case 3:
					toastUtil(ListViewActivity.this, position);
					break;
				case 4:
					toastUtil(ListViewActivity.this, position);
					break;
				case 5:
					toastUtil(ListViewActivity.this, position);
					break;
				case 6:
					toastUtil(ListViewActivity.this, position);
					break;
				}
			}
		});
	}

	/**
	 * 由于使用了大量的Toast,所以这里将这些Toast封装成一个方法
	 * 
	 * @param context
	 * @param position
	 */
	public void toastUtil(Context context, int position) {
		Toast.makeText(context, moreNames[position], 3000).show();
	}

	/**
	 * 自定义BaseAdapter,返回隔行换色的视图显示在ListView上。
	 */
	BaseAdapter baseAdapter = new BaseAdapter() {
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {

			ImageView imageView = null;
			TextView textView = null;
			// 获得布局文件more_info_my.xml,里面定义了TextView和ImageView两个组件
			convertView = LayoutInflater.from(ListViewActivity.this).inflate(
					R.layout.more_info_my, null);

			textView = (TextView) convertView.findViewById(R.id.mytxt);
			imageView = (ImageView) convertView.findViewById(R.id.myimage);
			// 设置ListView显示的文字内容和图片
			textView.setText(moreNames[position]);
			imageView.setImageResource(R.drawable.moreinfo_extend_next);
			// 为ListView设置隔行不同的背景颜色
			if (position % 2 == 0) {
				convertView.setBackgroundDrawable(getResources().getDrawable(
						R.drawable.list_item_2));
			} else {
				convertView.setBackgroundDrawable(getResources().getDrawable(
						R.drawable.list_item_1));
			}
			// 返回的convertView对象将作为ListView的列表项
			return convertView;
		}

		@Override
		public long getItemId(int position) {
			return 0;
		}

		@Override
		public Object getItem(int position) {
			return null;
		}

		@Override
		public int getCount() {
			return moreNames.length;
		}
	};
}

隔行换色 ListView:2.重写SimpleAdapter



import java.util.HashMap;
import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;

public class SpecialAdapter extends SimpleAdapter {
    private int[] colors = new int[] { 0x30FF0000, 0x300000FF };

    public SpecialAdapter(Context context, List<HashMap<String, String>> items, int resource, String[] from, int[] to) {
        super(context, items, resource, from, to);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View view = super.getView(position, convertView, parent);
      int colorPos = position % colors.length;
      view.setBackgroundColor(colors[colorPos]);
      return view;
    }
}

Activity 引用:

SpecialAdapter adapter = new SpecialAdapter(this,fillMaps,R.layout.grid_item,from,to);


android ListView奇偶行显示不同颜色

android ListView奇偶行显示不同颜色实现: //设置交叉背景色 如图: 在自定义adapter的getView方法里面实现: RelativeLayout rl;...
  • Android_Amelia
  • Android_Amelia
  • 2015年08月10日 14:43
  • 2056

xamarin listview绑定数据

listview一行显示3个数据,gridview也可以这么用 每次执行重新绑定数据 void get() { var datalist= new List>(); //ec,ac这里写法有区别,写成...
  • lfqsy
  • lfqsy
  • 2016年09月13日 16:10
  • 1387

Android基础(六) ListView - SimpleAdapter 行间颜色交替

一、概述   通过扩展SimpleAdapter,来改变显示外观。因为要每行的显示颜色,首先要获得每行的View实例,然后调用setBackgroundColor函数设置。 二、实例【效果】【代码片段...
  • stefzeus
  • stefzeus
  • 2011年02月24日 21:03
  • 8801

JSP简单隔行变色和日期格式化

以前好像在找,都没找到简单点的,所以后面就自己写了一个,感觉超级简单又好理解,分享给大家...
  • Jerome_s
  • Jerome_s
  • 2014年05月19日 12:49
  • 3389

html and js 的隔行换背景色表格实例详解

效果: 码码: table.altrowstable { font-family: verdana,arial,sans-serif; font-size:11px;...
  • bcbobo21cn
  • bcbobo21cn
  • 2015年05月29日 09:28
  • 2027

用bootstrap实现表格隔行变色,hover 变色并在需要时出现滚动条

边框表格布局 名称 城市 密码...
  • bawcwchen
  • bawcwchen
  • 2014年12月13日 17:47
  • 8553

Vba中Listview控件隔行换色的三种实现方式

网上的实现方法大多是这三种:         1、先在PictureBox控件里画图,画好后将其加载到Listview中         2、给单元格/Shape添加颜色后,复制Range和Shap...
  • q932789750
  • q932789750
  • 2017年01月16日 03:32
  • 712

listView隔行换色多选

参照网上相关文章写了下listview隔行换色与多选 1.item_fg_seclib.xml         android:layout_width="match_parent"  ...
  • u013042707
  • u013042707
  • 2015年04月23日 13:19
  • 332

VB ListView 隔行变色

  • 2012年08月20日 17:52
  • 747B
  • 下载

ListView隔行显示

  • 2008年10月31日 17:17
  • 71KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:整理::ListView的各种隔行换色法
举报原因:
原因补充:

(最多只允许输入30个字)