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; }}
阅读全文
0 0
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- listview多条目加载
- Listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- Listview多条目加载
- ListView多条目加载
- ListView多条目加载
- linux——lvm
- 一张图让你理清javascript中__proto__, prototype, 以及constructor之间的关系
- hashcode的重写方法
- 1,数据挖掘环境搭建-centos系统初始化min版安装与配置
- object_detection“使用教程”翻译(二):Tensorflow检测模型zoo
- ListView多条目加载
- 【量化小讲堂-Python&Pandas系列03】使用python计算移动平均线
- hadoop2.4.1集群搭建
- lvm
- 什么是数据挖掘?
- 2006年培养学员8万人,每年增长%25,请问按此增长速度,到那一年培训学员人数将达到20万人用for,while,dowhile,实现
- 两种常用的编程模型
- C语言函数之可变参数原理:va_start、va_arg及va_end
- Echarts2 柱状图