listview多条目加载

来源:互联网 发布:奥运村 避孕套 知乎 编辑:程序博客网 时间:2024/06/05 17:23

注意:需要配置获取网络权限,SD卡的读写权限


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 com.example.day07_listviewtiaomu.Bean.Goods;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import static android.view.View.inflate;public class MainActivity extends AppCompatActivity {    //创建集合    ArrayList<Goods> goodsList = new ArrayList<>();    String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg";    //添加数据    private ListView lv;    public ImageLoader instance;    private Holder1 holder1;    private Holder2 holder2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取控件        lv = (ListView) findViewById(R.id.lv);        //imageloader图片控件        instance = ImageLoader.getInstance();        //添加数据        initdata();    }    //添加数据的方法    private void initdata() {        goodsList.add(new Goods("商品1", "21", 0));        goodsList.add(new Goods("商品3", "23", 0));        goodsList.add(new Goods("商品4", "24", R.drawable.hu, 1));        goodsList.add(new Goods("商品2", "22", R.drawable.hu, 1));        goodsList.add(new Goods("商品5", "25", 0));        goodsList.add(new Goods("商品6", "26", R.drawable.hu, 1));        goodsList.add(new Goods("商品21", "21", 0));        goodsList.add(new Goods("商品5", "25", 0));        goodsList.add(new Goods("商品22", "22", R.drawable.hu, 1));        goodsList.add(new Goods("商品23", "23", 0));        goodsList.add(new Goods("商品24", "24", R.drawable.hu, 1));        goodsList.add(new Goods("商品25", "25", 0));        goodsList.add(new Goods("商品26", "26", R.drawable.hu, 1));        goodsList.add(new Goods("商品31", "21", 0));        goodsList.add(new Goods("商品32", "22", R.drawable.hu, 1));        goodsList.add(new Goods("商品34", "24", R.drawable.hu, 1));        goodsList.add(new Goods("商品36", "26", R.drawable.hu, 1));        goodsList.add(new Goods("商品33", "23", 0));        goodsList.add(new Goods("商品35", "25", 0));        //数据给适配器        lv.setAdapter(new Myadpater());    }    //适配器    private class Myadpater extends BaseAdapter {        //返回的条目类型        @Override        public int getItemViewType(int position) {            return goodsList.get(position).getTypeid();        }        //子布局的数量        @Override        public int getViewTypeCount() {            return 2;        }        @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) {            //首先获取bean类当中条目类型            int typeid = goodsList.get(i).getTypeid();            switch (typeid) {                case 0:                    Holder1 holder1 = null;                    if (view == null) {                        holder1 = new Holder1();                        view = inflate(MainActivity.this, R.layout.datatext1, null);                        holder1.tv1 = view.findViewById(R.id.text1);                        holder1.tv2 = view.findViewById(R.id.text2);                        view.setTag(holder1);                    } else {                        holder1 = (Holder1) view.getTag();                    }                    //赋值                    holder1.tv1.setText(goodsList.get(i).getName());                    holder1.tv2.setText(goodsList.get(i).getPrice());                    break;                case 1:                    Holder2 holder2 = null;                    if (view == null) {                        holder2 = new Holder2();                        view = View.inflate(MainActivity.this, R.layout.datatext2, null);                        holder2.text1 = view.findViewById(R.id.textview1);                        holder2.text2 = view.findViewById(R.id.textview2);                        holder2.img = view.findViewById(R.id.img);                        view.setTag(holder2);                    } else {                        holder2 = (Holder2) view.getTag();                    }                    holder2.text1.setText(goodsList.get(i).getName());                    holder2.text2.setText(goodsList.get(i).getPrice());                    //使用Imageloader给图片传图                    instance.displayImage(imgUrl, holder2.img);                    break;            }            return view;        }    }    //条目1    class Holder1 {        TextView tv1, tv2;    }    //条目2    class Holder2 {        TextView text1, text2;        ImageView img;    }}