Android为ListView的Item设置不同颜色背景

import java.util.ArrayList; 
import java.util.HashMap; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ListView; 
import android.app.Activity; 
/**
  * Demo描述:
  * 为ListView的Item设置不同的布局.
  * 例如在该例子中ListView的第一个Item显示一张
  * 图片,其余的Item都显示文字.
 
  * 为了达到此目的需要重写BaseAdapter中的
  * 1 getViewTypeCount()和getItemViewType(int position)方法.
  *   1.1在getViewTypeCount中指定一共有几种不同的item
  *      在此返回2即可.
  *   1.2在getItemViewType(int position)中需要依据position的不同
  *      返回不同的Type.
  * 2 在getView()方法中针对不同的Type为Item设置布局
  *   2.1得到当前位置(position)时的Type即代码:
  *       currentType= getItemViewType(position);
  *   2.2依据Type的不同为Item设置布局
 
  *
  */ 
public class MainActivity extends Activity { 
     private ListView mListView; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
         super .onCreate(savedInstanceState); 
         setContentView(R.layout.main); 
         init(); 
    
     private void init(){ 
         mListView=(ListView) findViewById(R.id.listview); 
       regeditedSelectAdapter=new RegeditedSelectAdapter(EmployeePlaySelect.this,user_Info_list);
                        lv.setAdapter(regeditedSelectAdapter);
 
       
         mListView.setOnItemClickListener( new ItemClickListenerImpl()); 
    
    
}
/**适配器**/
public class RegeditedSelectAdapter extends BaseAdapter {
    private Context context;
    private ArrayList<PlaySelect> reg_list;
    private LayoutInflater layoutInflater;
    private final int TYPE_COUNT=2;
    private final int FIRST_TYPE=0;
    private final int OTHERS_TYPE=1;
    private int currentType;


    public RegeditedSelectAdapter(Context context, ArrayList<PlaySelect> reg_list) {
        this.context = context;
        this.reg_list = reg_list;
        layoutInflater = LayoutInflater.from(context);
    }


    @Override
    public int getCount() {
       /* if (reg_list==null) {
            return 0;
        } else {
        }*/
        return reg_list.size();
    }


    @Override
    public Object getItem(int position) {
        /*if (reg_list==null) {
            return null;
        } else {
            if (position>0) {
                return reg_list.get(position-1);
            } else {
            }*/
            return reg_list.get(position);
        //}
    }


    @Override
    public long getItemId(int position) {
        return position;
    }
/***item不同布局设置***/
    @Override
    public int getViewTypeCount() {
        return TYPE_COUNT;
    }


    @Override
    public int getItemViewType(int position) {
        if (position%2==0) {
            return FIRST_TYPE;
        } else {
            return OTHERS_TYPE;
        }
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View firstItemView = null;
        View othersItemView=null;
        //获取到当前位置所对应的Type
        currentType= getItemViewType(position);
        System.out.println("type="+currentType);
        PlaySelect playSelect = reg_list.get(position);//自己的list集合
        if (currentType== FIRST_TYPE) {
            firstItemView = convertView;
            FirstRegViewHolder regViewHolder = null;
        if (firstItemView == null) {
            regViewHolder = new FirstRegViewHolder();
            firstItemView = layoutInflater.inflate(R.layout.play_first_select_xml, null);
            regViewHolder.col_name = (TextView) firstItemView.findViewById(R.id.col_name);
            regViewHolder.outgo_bgt_adjust = (TextView) firstItemView.findViewById(R.id.outgo_bgt_adjust);
            regViewHolder.outgo_execu = (TextView) firstItemView.findViewById(R.id.outgo_execu);
            regViewHolder.outgo_total = (TextView) firstItemView.findViewById(R.id.outgo_total);
            regViewHolder.outgobgt_bg = (TextView) firstItemView.findViewById(R.id.outgobgt_bg);
            regViewHolder.loaned = (TextView) firstItemView.findViewById(R.id.loaned);
            regViewHolder.current_available_e = (TextView) firstItemView.findViewById(R.id.current_available_e);
            firstItemView.setTag(regViewHolder);
        } else {
            regViewHolder = (FirstRegViewHolder) firstItemView.getTag();
        }


        regViewHolder.col_name.setText(playSelect.getCol_name());
        regViewHolder.outgo_bgt_adjust.setText(playSelect.getOutgo_bgt_adjust());
        regViewHolder.outgobgt_bg.setText(playSelect.getOutgobgt_bg());
        regViewHolder.outgo_total.setText(playSelect.getOutgo_total());
        regViewHolder.current_available_e.setText(playSelect.getCurrent_available_e());
        regViewHolder.loaned.setText(playSelect.getLoaned());
        regViewHolder.outgo_execu.setText(playSelect.getOutgo_execu());
            convertView=firstItemView;
        }else{
            othersItemView = convertView;
            SecondRegViewHolder sregViewHolder = null;
            if (othersItemView == null) {
                sregViewHolder = new SecondRegViewHolder();
                othersItemView = layoutInflater.inflate(R.layout.play_select_xml, null);
                sregViewHolder.col_name = (TextView) othersItemView.findViewById(R.id.col_name);
                sregViewHolder.outgo_bgt_adjust = (TextView) othersItemView.findViewById(R.id.outgo_bgt_adjust);
                sregViewHolder.outgo_execu = (TextView) othersItemView.findViewById(R.id.outgo_execu);
                sregViewHolder.outgo_total = (TextView) othersItemView.findViewById(R.id.outgo_total);
                sregViewHolder.outgobgt_bg = (TextView) othersItemView.findViewById(R.id.outgobgt_bg);
                sregViewHolder.loaned = (TextView) othersItemView.findViewById(R.id.loaned);
                sregViewHolder.current_available_e = (TextView) othersItemView.findViewById(R.id.current_available_e);
                othersItemView.setTag(sregViewHolder);
            } else {
                sregViewHolder = (SecondRegViewHolder) othersItemView.getTag();
            }


            sregViewHolder.col_name.setText(playSelect.getCol_name());
            sregViewHolder.outgo_bgt_adjust.setText(playSelect.getOutgo_bgt_adjust());
            sregViewHolder.outgobgt_bg.setText(playSelect.getOutgobgt_bg());
            sregViewHolder.outgo_total.setText(playSelect.getOutgo_total());
            sregViewHolder.current_available_e.setText(playSelect.getCurrent_available_e());
            sregViewHolder.loaned.setText(playSelect.getLoaned());
            sregViewHolder.outgo_execu.setText(playSelect.getOutgo_execu());
            convertView=othersItemView;
        }
        return convertView;
    }


    class FirstRegViewHolder {
        private TextView bgt_year;//预算年度
        private TextView outgobgt_bg;//期初额
        private TextView col_name;//栏目名称
        private TextView outgo_total;//预算总额
        private TextView outgo_bgt_adjust;//调整额
        private TextView outgo_execu;//实际支出额
        private TextView loaned;//贷款额
        private TextView current_available_e;//目前可用额
        private TextView pk_colarch;//栏目代码
    }
    class SecondRegViewHolder {
        private TextView bgt_year;//预算年度
        private TextView outgobgt_bg;//期初额
        private TextView col_name;//栏目名称
        private TextView outgo_total;//预算总额
        private TextView outgo_bgt_adjust;//调整额
        private TextView outgo_execu;//实际支出额
        private TextView loaned;//贷款额
        private TextView current_available_e;//目前可用额
        private TextView pk_colarch;//栏目代码
    }
}
如图:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值