为ListView控件加载不同的条目
来源:互联网 发布:北京外语网络教育官网 编辑:程序博客网 时间:2024/05/16 01:34
现在 布局文件内 写两个不同的布局
布局1 只有文字:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv2" android:layout_marginLeft="10dp" /></LinearLayout>布局2 文字加图片:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="啊哈哈哈" android:id="@+id/tv1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="啊哈哈哈" android:id="@+id/tv2" android:layout_marginLeft="10dp" /> <ImageView android:layout_width="70dp" android:layout_height="70dp" android:id="@+id/ig" android:background="@color/colorAccent" android:layout_marginLeft="20dp" /></LinearLayout>创建一个自定义框架 为ListView 的图片属性设置网络加载的图片
public class MApp extends Application { //需要在清单文件里加载name属性 需要在类里加载依赖 @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(config); //加载自定义框架 }}
创建一个Bean类为条目添加对象:package com.bwei.ssp.day_notlistview;/** * Created by lenovo on 2017/10/12. */public class Goods { private String name; private String price; private int imgId; private int typeId; //根据不同条目的需求创建不同的构造方法 public Goods(String name, String price, int typeId) { this.name = name; this.price = price; this.typeId = typeId; } public Goods(String name, String price, int imgId, int typeId) { this.name = name; this.price = price; this.imgId = imgId; this.typeId = typeId; } public void setName(String name) { this.name = name; } public void setPrice(String price) { this.price = price; } public void setImgId(int imgId) { this.imgId = imgId; } public void setTypeId(int typeId) { this.typeId = typeId; } public String getName() { return name; } public String getPrice() { return price; } public int getImgId() { return imgId; } public int getTypeId() { return typeId; }}
在主累里进行操作:package com.bwei.ssp.day_notlistview;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 java.util.List;public class MainActivity extends AppCompatActivity { private ListView lv; private ImageLoader instance; //创建框架对象 private List<Goods> list; String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg"; //创建网络图片地址 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv=(ListView) findViewById(R.id.lv); instance = ImageLoader.getInstance(); initData(); //在方法里进行操作 } private void initData() { list =new ArrayList<>(); //实例化一个集合 list.add(new Goods("商品3", "23", 0)); list.add(new Goods("商品4", "24", R.drawable.hu, 1)); list.add(new Goods("商品1", "21", 0)); list.add(new Goods("商品2", "22", R.drawable.hu, 1)); list.add(new Goods("商品5", "25", 0)); list.add(new Goods("商品6", "26", R.drawable.hu, 1)); list.add(new Goods("商品21", "21", 0)); list.add(new Goods("商品5", "25", 0)); list.add(new Goods("商品22", "22", R.drawable.hu, 1)); list.add(new Goods("商品23", "23", 0)); list.add(new Goods("商品24", "24", R.drawable.hu, 1)); list.add(new Goods("商品25", "25", 0)); list.add(new Goods("商品26", "26", R.drawable.hu, 1)); list.add(new Goods("商品31", "21", 0)); list.add(new Goods("商品32", "22", R.drawable.hu, 1)); list.add(new Goods("商品34", "24", R.drawable.hu, 1)); list.add(new Goods("商品36", "26", R.drawable.hu, 1)); list.add(new Goods("商品33", "23", 0)); list.add(new Goods("商品35", "25", 0)); //为集合添加对象 lv.setAdapter( new Madapter()); //设置适配器 }class Madapter extends BaseAdapter { private final int TYPE0 = 0;//只有文字的条目 private final int TYPE1 = 1;//文字+图片的条目 //分别加载的条目为哪类布局的文件 @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 2; } //有多少个条目类型 @Override public int getItemViewType(int position) { return list.get(position).getTypeId(); } //通过那个属性区别 @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); //返回条目类型的判断条件 Holder0 holder0; Holder1 holder1; switch (type) { case TYPE0: if (view == null) { holder0 = new Holder0(); view = View.inflate(MainActivity.this, R.layout.item, null); holder0.textView1 = (TextView) view.findViewById(R.id.tv1); holder0.textView2 = (TextView) view.findViewById(R.id.tv2); view.setTag(holder0); } else { holder0 = (Holder0) view.getTag(); } holder0.textView1.setText(list.get(i).getName()); holder0.textView2.setText(list.get(i).getPrice()); break; case TYPE1: if (view == null) { holder1 = new Holder1(); view = View.inflate(MainActivity.this, R.layout.item2, null); holder1.textView1 = (TextView) view.findViewById(R.id.tv1); holder1.textView2 = (TextView) view.findViewById(R.id.tv2); holder1.imageView1 = (ImageView) view.findViewById(R.id.ig); view.setTag(holder1); } else { holder1 = (Holder1) view.getTag(); } holder1.textView1.setText(list.get(i).getName()); holder1.textView2.setText(list.get(i).getPrice()); instance.displayImage(imgUrl, holder1.imageView1); break; } return view; }} class Holder0 { private TextView textView1; private TextView textView2; } class Holder1 { private TextView textView1; private TextView textView2; private ImageView imageView1; }}
阅读全文
0 0
- 为ListView控件加载不同的条目
- ListView加载不同的条目
- android listview 加载多种不同视图的条目
- 关于在listView中加载不同的条目
- ListView的多条目加载
- ListView的多条目加载
- Listview的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- listview显示不同条目的Adapter
- listview的多条目加载的适配器
- 复杂的ListView,多条目加载
- 复杂的ListView,多条目加载
- listview多条目加载的类
- listview的多条目加载和解析
- ListView加优化的多条目加载
- 第二十六讲项目3.1(2)字符数组排序使其能对字符数组进行排序
- StarUML中类图如何显示interface
- 基于HTML5的有弹幕功能的视频播放器
- git常用指令
- WebService详解
- 为ListView控件加载不同的条目
- eclipse 创建maven
- Log4j日志在java项目中的使用(附工程源码)
- 【二维树状数组】【模板】poj1195Mobile phones
- Android RecyclerView 使用完全解析 体验艺术般的控件
- man命令
- sklearn pipeline
- 服务器推送数据之Comet
- 【Lightoj 1063