MainActivity类
package com.bwie.moreitem_lv_demo;
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;
public class MainActivity extends AppCompatActivity {
;
private ArrayList<Goods> goodsList;
String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg";
private ImageView img;
private ListView lv;
private ImageLoader imageLoaderInstance;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
imageLoaderInstance = ImageLoader.getInstance();
initData();
}
private void initData() {
goodsList = new ArrayList<Goods>();
goodsList.add(new Goods("商品3", "23", 0));
goodsList.add(new Goods("商品4", "24", R.drawable.hu, 1));
goodsList.add(new Goods("商品1", "21", 0));
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设置Adapter
lv.setAdapter(new MAdapter());
}
class MAdapter extends BaseAdapter {
private final int TYPE0 = 0;//只有文字的条目
private final int TYPE1 = 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 int getViewTypeCount() {
return 2;
}
//返回条目类型;
@Override
public int getItemViewType(int position) {
return goodsList.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.lv_item_1, null);
holder0.textView1 = (TextView) view.findViewById(R.id.textView1);
holder0.textView2 = (TextView) view.findViewById(R.id.textView2);
view.setTag(holder0);
} else {
holder0 = (Holder0) view.getTag();
}
holder0.textView1.setText(goodsList.get(i).getName());
holder0.textView2.setText(goodsList.get(i).getPrice());
break;
case TYPE1:
if (view == null) {
holder1 = new Holder1();
view = View.inflate(MainActivity.this, R.layout.lv_item_2, null);
holder1.textView1 = (TextView) view.findViewById(R.id.textView1);
holder1.textView2 = (TextView) view.findViewById(R.id.textView2);
holder1.imageView1 = (ImageView) view.findViewById(R.id.imageView1);
view.setTag(holder1);
} else {
holder1 = (Holder1) view.getTag();
}
holder1.textView1.setText(goodsList.get(i).getName());
holder1.textView2.setText(goodsList.get(i).getPrice());
imageLoaderInstance.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;
}
}
MApp类
package com.bwie.moreitem_lv_demo;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
/**
* author:Created by WangZhiQiang on 2017-09-05.
*/
public class MApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(config);
}
}
// Goods类
package com.bwie.moreitem_lv_demo;
public class Goods {
private String name;
private String price;
private int resId;
// 定义的条目类型
private int typeId;
public Goods(String name, String price, Integer typeId) {
super();
this.name = name;
this.price = price;
this.typeId = typeId;
}
public Goods(String name, String price, int resId, Integer typeId) {
super();
this.name = name;
this.price = price;
this.resId = resId;
this.typeId = typeId;
}
public int getTypeId() {
return typeId;
}
public void setTypeId(int typeId) {
this.typeId = typeId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public int getResId() {
return resId;
}
public void setResId(int resId) {
this.resId = resId;
}
@Override
public String toString() {
return "Goods [name=" + name + ", price=" + price + ", resId=" + resId
+ "]";
}
}
//清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bwie.moreitem_lv_demo">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<application
android:name=".MApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>