ListView多条目加载

来源:互联网 发布:csi网络犯罪调查第二季 编辑:程序博客网 时间:2024/05/18 13:45
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("商品3", "23", 0));
        goodsList.add(new Goods("商品4", "24", R.drawable.hu, 1));
        goodsList.add(new Goods("商品6", "26", R.drawable.hu, 1));
        goodsList.add(new Goods("商品21", "21", 0));
        goodsList.add(new Goods("商品5", "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;
       }

}

public class MApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build();
        ImageLoader.getInstance().init(config);
    }
}

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
                + "]";
    }
}


//权限

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

//build.gradle

 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'

(备注:别忘记在libs下导入 universal-image-loader-1.9.5.jar    mxl布局根据自己所需去布局)