多条目加载数据

来源:互联网 发布:java使用zookeeper 编辑:程序博客网 时间:2024/05/29 07:11

清单文件:

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

.gradle


compile 'com.zftlive.android.library:feature-android-imageloader:1.0.0'


dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {        exclude group: 'com.android.support', module: 'support-annotations'    })    compile 'com.android.support:appcompat-v7:26+'    compile 'com.android.support.constraint:constraint-layout:1.0.2'    testCompile 'junit:junit:4.12'    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')}


布局文件:

  主布局Listview 本代码有两个子布局

/** * listview多条目加载,使用项目使用imageloader,butterknife; */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("商品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));        //把数据配置给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);    }}

//另有一个普通Bean类