listview多条目

来源:互联网 发布:c 常量数组 编辑:程序博客网 时间:2024/06/02 14:46
package com.example.moreitemlistviewdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {       private ListView lv;    private List<Goods> goodsList =new ArrayList<Goods>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lv = (ListView) findViewById(R.id.lv);        initData();    }    private void initData() {        goodsList = new ArrayList<Goods>();        goodsList.add(new Goods("商品1", "21", 0));        goodsList.add(new Goods("商品3", "23", 0));        goodsList.add(new Goods("商品4", "24", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品2", "22", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品5", "25", 0));        goodsList.add(new Goods("商品6", "26", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品21", "21", 0));        goodsList.add(new Goods("商品5", "25", 0));        goodsList.add(new Goods("商品22", "22", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品23", "23", 0));        goodsList.add(new Goods("商品24", "24", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品25", "25", 0));        goodsList.add(new Goods("商品26", "26", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品31", "21", 0));        goodsList.add(new Goods("商品32", "22", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品34", "24", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品36", "26", R.mipmap.zhu, 1));        goodsList.add(new Goods("商品33", "23", 0));        goodsList.add(new Goods("商品35", "25", 0));        lv.setAdapter(new MyAdapter());            }    class MyAdapter extends BaseAdapter{        private final int type1 = 0;        private final int type2 = 1;        @Override        public int getCount() {            return goodsList.size();        }        @Override        public Object getItem(int i) {            return goodsList.get(i);        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            int typeId = goodsList.get(i).getTypeId();                switch(typeId){                        case type1:                            ViewHoder1 hoder1 = null;                            if(view == null){                                hoder1 = new ViewHoder1();                                view = View.inflate(MainActivity.this,R.layout.lv_item_1,null);                                hoder1.textView1 = view.findViewById(R.id.t1);                                hoder1.textView2 = view.findViewById(R.id.t2);                                view.setTag(hoder1);                            }else{                                hoder1 = (ViewHoder1) view.getTag();                            }                            hoder1.textView1.setText(goodsList.get(i).getName());                            hoder1.textView2.setText(goodsList.get(i).getPrice());                        break;                        case type2:                            ViewHoder2 hoder2 = null;                            if(view == null){                                hoder2 = new ViewHoder2();                                view = View.inflate(MainActivity.this,R.layout.lv_item_2,null);                                hoder2.textView1 = view.findViewById(R.id.textView1);                                hoder2.textView2 = view.findViewById(R.id.textView2);                                hoder2.imageView1=view.findViewById(R.id.imageView1);                                view.setTag(hoder2);                            }else{                                hoder2 = (ViewHoder2) view.getTag();                            }                            hoder2.imageView1.setImageResource(R.mipmap.zhu);                            hoder2.textView1.setText(goodsList.get(i).getName());                            hoder2.textView2.setText(goodsList.get(i).getPrice());                        break;                    }            return view;        }        //返回条目有多少条        public int getViewTypeCount() {            return 2;        }        //返回条目的类型        @Override        public int getItemViewType(int position) {            return  goodsList.get(position).getTypeId();        }    }    class ViewHoder1{        TextView textView1,textView2;    }    class ViewHoder2{        TextView textView1,textView2;        ImageView imageView1;    }}