package com.lbs.list_list2; 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.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity { //图片地址 String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg"; private ListView lv; private ArrayList<Goods> goodsList; private ImageLoader instance; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取ButterKnife对控件注解 ButterKnife.bind(this); // 获取ImageLoader instance = ImageLoader.getInstance(); //获取id lv = (ListView) findViewById(R.id.lv); //编写参数数据 initData(); } private void initData() { //总集合 goodsList = new ArrayList<>(); /*new Goods("商品1", "21", 0) 实例Goods类 0为表示 区分有几个listview 必须从0开始 0.1.2.3依序*/ goodsList.add(new Goods("商品1", "21", 0)); goodsList.add(new Goods("商品3", "23", 0)); goodsList.add(new Goods("商品4", "24", R.drawable.c, 1)); goodsList.add(new Goods("商品2", "22", R.drawable.c, 1)); goodsList.add(new Goods("商品5", "25", 0)); goodsList.add(new Goods("商品6", "26", R.drawable.c, 1)); goodsList.add(new Goods("商品21", "21", 0)); goodsList.add(new Goods("商品5", "25", 0)); goodsList.add(new Goods("商品22", "22", R.drawable.c, 1)); goodsList.add(new Goods("商品23", "23", 0)); goodsList.add(new Goods("商品24", "24", R.drawable.c, 1)); goodsList.add(new Goods("商品25", "25", 0)); goodsList.add(new Goods("商品26", "26", R.drawable.c, 1)); goodsList.add(new Goods("商品31", "21", 0)); goodsList.add(new Goods("商品32", "22", R.drawable.c, 1)); goodsList.add(new Goods("商品34", "24", R.drawable.c, 1)); goodsList.add(new Goods("商品36", "26", R.drawable.c, 1)); goodsList.add(new Goods("商品33", "23", 0)); goodsList.add(new Goods("商品35", "25", 0)); //把数据配置给listview lv.setAdapter(new myadapter()); } //BaseAdapter类 class myadapter extends BaseAdapter { //条目类型 private final int type1 = 0; private final int type2 = 1; //List view总条目 @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; } //getView 编写视图 @Override public View getView(int i, View view, ViewGroup viewGroup) { //获取goodsList类的区分List view条目参数 int typeId = goodsList.get(i).getTypeId(); //switch 判断当前为那个Listview switch (typeId) { case type1: //实例化viewhober类 Holder1 holder1 = null; //优化么 if(holder1 == null){ holder1 = new Holder1(); view = View.inflate(MainActivity.this, R.layout.ss, null); holder1.textView1 = view.findViewById(R.id.tvtitle1); holder1.textView2 = view.findViewById(R.id.tvtitle2); view.setTag(holder1); }else { holder1= (Holder1) view.getTag(); } holder1.textView1.setText(goodsList.get(i).getName()); holder1.textView2.setText(goodsList.get(i).getPrice()); break; case type2: Holder2 holder2 = null; if(holder2 == null){ holder2 = new Holder2(); view = View.inflate(MainActivity.this, R.layout.ss2, null); holder2.textView1 = view.findViewById(R.id.tv1); holder2.textView2 = view.findViewById(R.id.tv2); holder2.imageView1 = view.findViewById(R.id.iv1); view.setTag(holder2); }else { holder2= (Holder2) view.getTag(); } holder2.textView1.setText(goodsList.get(i).getName()); holder2.textView2.setText(goodsList.get(i).getPrice()); instance.displayImage(imgUrl,holder2.imageView1); break; } return view; } //返回条目有多少种类型 @Override public int getViewTypeCount() { return 2; } //返回条目的类型 @Override public int getItemViewType(int position) { return goodsList.get(position).getTypeId(); } } //优化类1 class Holder1 { TextView textView1, textView2; } //优化类2 class Holder2 { TextView textView1, textView2; ImageView imageView1; } }package com.lbs.list_list2; import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * author:Created by WangZhiQiang on 2017/11/8. */ public class MApp extends Application { @Override public void onCreate() { super.onCreate(); //链式开发思想 ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(build); } }
Listview 多条目加载
最新推荐文章于 2019-01-03 16:26:42 发布