您的位置:首页 > 移动开发 > Android开发

listview多条目加载

2017-11-07 19:55 381 查看
注意:需要配置获取网络权限,SD卡的读写权限

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.example.day07_listviewtiaomu.Bean.Goods;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;

import static android.view.View.inflate;

public class MainActivity extends AppCompatActivity {

//创建集合
ArrayList<Goods> goodsList = new ArrayList<>();
String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg";
//添加数据

private ListView lv;
public ImageLoader instance;
private Holder1 holder1;
private Holder2 holder2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
lv = (ListView) findViewById(R.id.lv);
//imageloader图片控件
instance = ImageLoader.getInstance();
//添加数据
initdata();

}

//添加数据的方法
private void initdata() {

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));

//数据给适配器
lv.setAdapter(new Myadpater());
}

//适配器
private class Myadpater extends BaseAdapter {

//返回的条目类型
@Override
public int getItemViewType(int position) {
return goodsList.get(position).getTypeid();
}

//子布局的数量
@Override
public int getViewTypeCount() {
return 2;
}

@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 view, ViewGroup viewGroup) {
//首先获取bean类当中条目类型
int typeid = goodsList.get(i).getTypeid();
switch (typeid) {
case 0:
Holder1 holder1 = null;
if (view == null) {
holder1 = new Holder1();
view = inflate(MainActivity.this, R.layout.datatext1, null);
holder1.tv1 = view.findViewById(R.id.text1);
holder1.tv2 = view.findViewById(R.id.text2);
view.setTag(holder1);
} else {
holder1 = (Holder1) view.getTag();
}

//赋值
holder1.tv1.setText(goodsList.get(i).getName());
holder1.tv2.setText(goodsList.get(i).getPrice());

break;
case 1:
Holder2 holder2 = null;
if (view == null) {
holder2 = new Holder2();
view = View.inflate(MainActivity.this, R.layout.datatext2, null);
holder2.text1 = view.findViewById(R.id.textview1);
holder2.text2 = view.findViewById(R.id.textview2);
holder2.img = view.findViewById(R.id.img);
view.setTag(holder2);
} else {
holder2 = (Holder2) view.getTag();
}
holder2.text1.setText(goodsList.get(i).getName());
holder2.text2.setText(goodsList.get(i).getPrice());

//使用Imageloader给图片传图
instance.displayImage(imgUrl, holder2.img);
break;

}
return view;
}
}

//条目1
class Holder1 {
TextView tv1, tv2;
}

//条目2
class Holder2 {
TextView text1, text2;
ImageView img;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android