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; } }
ListView多条目加载
最新推荐文章于 2019-01-03 16:26:42 发布