(1)用于ListView,用来设置每项的背景
1 package com.studio.basf.libs; 2 3 import java.util.List; 4 5 import android.content.Context; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.view.ViewGroup; 9 import android.widget.BaseAdapter; 10 import android.widget.RelativeLayout; 11 import android.widget.TextView; 12 13 import com.studio.basf.android.R; 14 15 /** 16 * 自定义ListView适配器-Square 17 * @author lhb-JewLeo 18 */ 19 public class SquareAdapter extends BaseAdapter { 20 21 private LayoutInflater mInflater; 22 private List < String > list; 23 24 // 自定义容器类 25 class ViewHolder { 26 private TextView TvName; 27 private RelativeLayout ReLayout; 28 29 public TextView getTvName() { 30 return TvName; 31 } 32 public void setTvName(TextView tvName) { 33 TvName = tvName; 34 } 35 public RelativeLayout getReLayout() { 36 return ReLayout; 37 } 38 public void setReLayout(RelativeLayout reLayout) { 39 ReLayout = reLayout; 40 } 41 } 42 43 public SquareAdapter(List < String > list, Context context) { 44 this .list = list; 45 this .mInflater = LayoutInflater.from(context); 46 } 47 48 public int getCount() { 49 // TODO Auto-generated method stub 50 return list.size(); 51 } 52 53 public Object getItem( int position) { 54 // TODO Auto-generated method stub 55 return list.get(position); 56 } 57 58 public long getItemId( int position) { 59 // TODO Auto-generated method stub 60 return position; 61 } 62 63 public View getView( int position, View convertView, ViewGroup parent) { 64 // TODO Auto-generated method stub 65 ViewHolder holder = null ; 66 if (convertView == null ) { 67 holder = new ViewHolder(); 68 69 convertView = mInflater 70 .inflate(R.layout.square_item_view, null ); 71 holder.setTvName((TextView) convertView 72 .findViewById(R.id.tvItemName)); 73 holder.setReLayout((RelativeLayout) convertView 74 .findViewById(R.id.relativeSquare)); 75 76 convertView.setTag(holder); 77 } else { 78 holder = (ViewHolder) convertView.getTag(); 79 } 80 81 holder.getTvName().setText(list.get(position)); 82 if (position == 0 ) { 83 holder.getReLayout().setBackgroundResource(R.drawable.circle_list_top); 84 } else if (position == getCount() - 1 ) { 85 holder.getReLayout().setBackgroundResource(R.drawable.circle_list_bottom); 86 } else { 87 holder.getReLayout().setBackgroundResource(R.drawable.circle_list_middle); 88 } 89 90 return convertView; 91 } 92 93 }
(2)动态改变ListView项中某个显示字段的内容
1 package com.studio.basf.libs; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 6 import android.content.Context; 7 import android.view.LayoutInflater; 8 import android.view.View; 9 import android.view.ViewGroup; 10 import android.widget.BaseAdapter; 11 import android.widget.TextView; 12 13 public class CustomListAdapter extends BaseAdapter { 14 15 private LayoutInflater mInflater; 16 private ArrayList < HashMap < String, String >> list; 17 private int resource; 18 private String[] from; 19 private int [] to; 20 21 // 自定义容器类 22 class ViewHolder { 23 private ArrayList < TextView > tvCollections; 24 25 public ArrayList < TextView > getTvCollections() { 26 return tvCollections; 27 } 28 29 public void setTvCollections(ArrayList < TextView > tvCollections) { 30 this .tvCollections = tvCollections; 31 } 32 } 33 34 public CustomListAdapter(Context context, 35 ArrayList < HashMap < String, String >> list, int resource, 36 String[] from, int [] to) { 37 this .list = list; 38 this .mInflater = LayoutInflater.from(context); 39 this .resource = resource; 40 this .from = from; 41 this .to = to; 42 } 43 44 public int getCount() { 45 // TODO Auto-generated method stub 46 return list.size(); 47 } 48 49 public Object getItem( int position) { 50 // TODO Auto-generated method stub 51 return list.get(position); 52 } 53 54 public long getItemId( int position) { 55 // TODO Auto-generated method stub 56 return position; 57 } 58 59 public View getView( int position, View convertView, ViewGroup parent) { 60 // TODO Auto-generated method stub 61 ViewHolder holder = null ; 62 if (convertView == null ) { 63 holder = new ViewHolder(); 64 convertView = mInflater.inflate(resource, null ); 65 66 ArrayList < TextView > tvList = new ArrayList < TextView > (); 67 for ( int i = 0 ; i < to.length; i ++ ) { 68 tvList.add((TextView) convertView.findViewById(to[i])); 69 } 70 holder.setTvCollections(tvList); 71 72 convertView.setTag(holder); 73 } else { 74 holder = (ViewHolder) convertView.getTag(); 75 } 76 77 // 获取单项数据 78 HashMap < String, String > hashMap = list.get(position); 79 80 if (hashMap.get( " isValid " ).trim().equals( " 失败 " )) { 81 hashMap.remove( " showvalidpoint " ); 82 } 83 84 // 绑定到视图上 85 for ( int i = 0 ; i < to.length; i ++ ) { 86 holder.getTvCollections().get(i).setText(hashMap.get(from[i])); 87 } 88 89 return convertView; 90 } 91 }