ListView多条目加载
来源:互联网 发布:我家我设计软件 编辑:程序博客网 时间:2024/06/06 00:47
(不同布局的ListView)
Gradle依赖+第四条依赖是封装好的Library+网络,读,写权限,+配置name属性
compile 'com.jakewharton:butterknife:8.8.1'annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'compile files('libs/universal-image-loader-1.9.5.jar')compile project(':templibrary')
在listView适配器重写的四个方法的基础上,再手动重写两个方法,分别是:getViewTypeCount(),getItemViewType(int position),这两个方法,第一个是确定加载条木有几种数据类型,第二个是对数据进行判断和分类的
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.BindView;import butterknife.ButterKnife;/** * listview多条目加载,使用项目使用imageloader,butterknife; */public class MainActivity extends AppCompatActivity { @BindView(R.id.lv) ListView lv; private ArrayList<Goods> goodsList; String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg"; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //使用butterKnife来注解控件; ButterKnife.bind(this); initData(); } private void initData() { goodsList = new ArrayList<Goods>(); 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)); //把数据配置给listview lv.setAdapter(new MBaseAdapter()); } class MBaseAdapter extends BaseAdapter { private final int type1 = 0; private final int type2 = 1; @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 convertView, ViewGroup viewGroup) { int typeId = goodsList.get(i).getTypeId(); switch (typeId) { case type1: Holder1 holder1 = null; if (convertView == null) { holder1 = new Holder1(); convertView = View.inflate(MainActivity.this, R.layout.lv_item_1, null); holder1.textView1 = convertView.findViewById(R.id.textView1); holder1.textView2 = convertView.findViewById(R.id.textView2); convertView.setTag(holder1); } else { holder1 = (Holder1) convertView.getTag(); } holder1.textView1.setText(goodsList.get(i).getName()); holder1.textView2.setText(goodsList.get(i).getPrice()); break; case type2: Holder2 holder2 = null; if (convertView == null) { holder2 = new Holder2(); convertView = View.inflate(MainActivity.this, R.layout.lv_item_2, null); holder2.textView1 = convertView.findViewById(R.id.textView1); holder2.textView2 = convertView.findViewById(R.id.textView2); holder2.imageView1 = convertView.findViewById(R.id.imageView1); convertView.setTag(holder2); } else { holder2 = (Holder2) convertView.getTag(); } holder2.textView1.setText(goodsList.get(i).getName()); holder2.textView2.setText(goodsList.get(i).getPrice());// holder2.imageView1.setImageResource(R.drawable.hu); ImageLoader.getInstance().displayImage(imgUrl, holder2.imageView1); break; } return convertView; } //返回条目有多少种类型 @Override public int getViewTypeCount() { return 2; } //返回条目的类型 @Override public int getItemViewType(int position) { return goodsList.get(position).getTypeId(); } } class Holder1 { TextView textView1, textView2; } class Holder2 { TextView textView1, textView2; ImageView imageView1; }}
阅读全文
0 0
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- listview多条目加载
- Listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- Listview多条目加载
- ListView多条目加载
- ListView多条目加载
- linux基础知识
- Android逆向之DcseTBS获取设备ID原理
- 四周第二次课 2017.11.07 vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、vim一般模式下复制、剪切和粘贴
- 数据结构代码实现(链队列)
- 计蒜客 堆积木
- ListView多条目加载
- java中的jdk切换(无需卸载原有jdk)
- 数据分析与机器学习入门(一)——EDA探索性数据分析(持续更新中...)
- HTML获取元素
- MyEclipse输出syso使用自动补全功能不是标准的输出语句
- MyBatits之基本查询
- ZOJ 1992 Sightseeing Tour(混合图欧拉回路)
- jQuery EasyUI弹出确认对话框(确认操作中.....)
- 风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)