listView多条目
来源:互联网 发布:ps修复软件下载 编辑:程序博客网 时间:2024/06/07 07:24
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;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.bwei.Bean.Goods;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;//一、整个布局是一个listview,而listview里面是嵌套了不同展示类型的item,// 平常只显示一种listview条目,我们会用到常用的四个方法,但是显示不同种类型item的时候,// 还需要实现两个重要的API// 1.//返回条目的类型// getItemViewType()// 2.//返回条目有多少种类型// getViewTypeCount()// 二.我们要通过定义的type,也就是0.1.2.3,或者在网上获取的类型type,// 在getView方法中通过判断去展示不同的item.
这里图片使用ImageLoader写的 别忘的加
-依赖 compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
3--重写MApp类extends Application, 切记要在清单文件调用;切记要在清单文件调用;切记要在清单文件调用;
public class MainActivity extends AppCompatActivity { //list集合 private ArrayList<Goods> list; //路径 String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg"; //控件 private ListView lv; //调用方法 private ImageLoader instance; //获取适配器 private MyAdaper myAdaper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //出事值 indata(); //控件 lv = (ListView) findViewById(R.id.lv); //获取Mapp来的参数 instance = ImageLoader.getInstance(); //实力化适配器 myAdaper = new MyAdaper(); //获取适配器 lv.setAdapter(myAdaper); } private void indata() { //集合 list = new ArrayList<Goods>(); list.add(new Goods("商品3", "23", 0)); list.add(new Goods("商品4", "24", imgUrl, 1)); list.add(new Goods("商品2", "22", imgUrl, 1)); list.add(new Goods("商品5", "25", 0)); list.add(new Goods("商品6", "26", imgUrl, 1)); list.add(new Goods("商品21", "21", 0)); list.add(new Goods("商品5", "25", 0)); list.add(new Goods("商品22", "22", imgUrl, 1)); list.add(new Goods("商品23", "23", 0)); list.add(new Goods("商品24", "24", imgUrl, 1)); list.add(new Goods("商品25", "25", 0)); list.add(new Goods("商品26", "26", imgUrl, 1)); list.add(new Goods("商品31", "21", 0)); list.add(new Goods("商品32", "22", imgUrl, 1)); list.add(new Goods("商品34", "24", imgUrl, 1)); list.add(new Goods("商品36", "26", imgUrl, 1)); list.add(new Goods("商品33", "23", 0)); list.add(new Goods("商品35", "25", 0)); Log.e("tag", list.toString() + "+++++++++"); } class MyAdaper extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } //当你的listview里的布局多样化的时候,viewholder的作用就比较的体现了 //加入你两种模式的布局,当方式回收的时候,你会用setTag分别记录是哪两种 //这两种模式会被封装到viewholder中进行保存方便下次使用 @Override public View getView(int i, View view, ViewGroup viewGroup) { //取出id来判断多条目 int id = list.get(i).getId(); switch (id) { case 0: viewholder1 holder1 = null; if (holder1 == null) { holder1 = new viewholder1(); view = View.inflate(MainActivity.this, R.layout.f1, null); holder1.tv = view.findViewById(R.id.tv); view.setTag(holder1); } else { holder1 = (viewholder1) view.getTag(); } holder1.tv.setText(list.get(i).getName() + " " + list.get(i).getPrice()); break; case 1: viewholder2 holder2 = null; if (holder2 == null) { holder2 = new viewholder2(); view = View.inflate(MainActivity.this, R.layout.f2, null); holder2.tv1 = view.findViewById(R.id.tv1); holder2.image = view.findViewById(R.id.img); view.setTag(holder2); } else { holder2 = (viewholder2) view.getTag(); } holder2.tv1.setText(list.get(i).getName() + " " + list.get(i).getPrice()); ; String Urlimg = list.get(i).getImg(); instance.displayImage(Urlimg, holder2.image); break; } return view; } //返回条目有多少种类型 @Override public int getViewTypeCount() { return 2; } //需要实现两个重要的API(getViewTypeCount()、getItemViewType()) //返回条目的类型 @Override public int getItemViewType(int position) { return list.get(position).getId(); } } public class viewholder1 { TextView tv; } public class viewholder2 { TextView tv1; ImageView image; }}
阅读全文
0 0
- ListView多条目展示
- ListView多条目显示
- ListView多条目展示
- listview多条目展示
- ListView多条目加载
- listView 多条目展示
- listView多条目显示
- ListView 多条目加载
- listView多条目
- ListView多条目展示
- listview多条目展示
- ListView多条目展示
- listview多条目加载
- ListView多条目加载
- listview多条目显示
- listview多条目加载
- ListView多条目加载
- ListView多条目加载
- Xlistview
- java代码性能调优
- laravel apiato框架使用
- 递归
- Advanced Programming in UNIX Environment Episode 13
- listView多条目
- Laravel 获取请求类型
- java.util.concurrent.locks.AbstractOwnableSynchronizer
- 子查询
- IDEA构建一个mybatis项目
- SpringBoot
- 通过判断浏览器的userAgent,用正则来判断手机是否是ios(苹果)和Android(安卓)客户端
- 查看mysql库大小,表大小,索引大小
- 从文件里面读出1000个随机数,进行排序,再写到另一文件中。(考虑使用重定向dup/dup2)