ListView多条目加载

来源:互联网 发布:剑网三 知乎 编辑:程序博客网 时间:2024/06/03 04:00

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;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 com.example.mylistview.JAVABean.Goods;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    String uriString = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";    private ListView lv;    private MyAdapter my;    List<Goods> list = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //找到控件        lv = (ListView) findViewById(R.id.lv);        //调用数据        init();        //添加适配器        my = new MyAdapter();        lv.setAdapter(my);    }    //数据    public void init() {        list.add(new Goods("商品1", "50", 0));        list.add(new Goods("商品2", "80", R.mipmap.ic_launcher, 1));        list.add(new Goods("商品3", "50", 0));        list.add(new Goods("商品4", "80", R.mipmap.ic_launcher, 1));        list.add(new Goods("商品5", "50", 0));        list.add(new Goods("商品6", "80", R.mipmap.ic_launcher, 1));        list.add(new Goods("商品7", "50", 0));        list.add(new Goods("商品8", "80", R.mipmap.ic_launcher, 1));        list.add(new Goods("商品9", "50", 0));        list.add(new Goods("商品10", "80", R.mipmap.ic_launcher, 1));    }    //适配器的类    class MyAdapter extends BaseAdapter {        private final int type0 = 0;        private final int type1 = 1;        //返回数据的数量        @Override        public int getCount() {            return list.size();        }        //返回每个item        @Override        public Object getItem(int i) {            return list.get(i);        }        //返回每个item的ID        @Override        public long getItemId(int i) {            return i;        }        //返回视图        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            //获取数据的类型            int type = list.get(i).getType();            //判断类型            switch (type) {                case type0:                    //优化                    ViewHader0 vh0 = null;                    if (view == null) {                        //实例化                        vh0 = new ViewHader0();                        //把布局文件转成View                        view = View.inflate(MainActivity.this, R.layout.activity0, null);                        //找到控件                        vh0.tv1 = view.findViewById(R.id.action0_tv1);                        vh0.tv2 = view.findViewById(R.id.action0_tv2);                        //把ViewHader0添加到容器里                        view.setTag(vh0);                    } else {                        //从容器里取出                        vh0 = (ViewHader0) view.getTag();                    }                    //赋值                    vh0.tv1.setText(list.get(i).getName());                    vh0.tv2.setText(list.get(i).getPrice());                    break;                case type1:                    //优化                    ViewHader1 vh1 = null;                    if (view == null) {                        //实例化ViewHadler1                        vh1 = new ViewHader1();                        //把布局文件转成View                        view = View.inflate(MainActivity.this, R.layout.activity1, null);                        //找到控件                        vh1.im = view.findViewById(R.id.action1_im);                        vh1.tv1 = view.findViewById(R.id.action1_tv1);                        vh1.tv2 = view.findViewById(R.id.action1_tv2);                        //把ViewHHadler1放到容器里                        view.setTag(vh1);                    } else {                        //从容器里取出来                        vh1 = (ViewHader1) view.getTag();                    }                    //赋值                    vh1.tv1.setText(list.get(i).getName());                    vh1.tv2.setText(list.get(i).getPrice());                    vh1.im.setImageResource(list.get(i).getIm());                    break;            }            return view;//返回        }        //返回条目地类型        @Override        public int getItemViewType(int position) {            return list.get(position).getType();        }        //返回有多少中类型        @Override        public int getViewTypeCount() {            return 2;        }    }    public class ViewHader0 {        TextView tv1, tv2;    }    public class ViewHader1 {        TextView tv1, tv2;        ImageView im;    }}

原创粉丝点击