banner+xlistview+多条目展示

来源:互联网 发布:易语言安卓远控源码 编辑:程序博客网 时间:2024/05/18 08:48
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private String path = "http://huixinguiyu.cn/Assets/js/data.js";    private String s;    private List<MyBean.ApkBean> apkList;    private Banner myBanner;    private List<String> imgList;    private XListView myXlist;    private Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            adapter.notifyDataSetChanged();            onStop();        }    };    private XListAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        myBanner = (Banner) findViewById(R.id.MyBanner);        myXlist = (XListView) findViewById(R.id.MyXList);        myXlist.setXListViewListener(MainActivity.this);        myXlist.setPullRefreshEnable(true);        myXlist.setPullLoadEnable(true);        myBanner.setImageLoader(new MyImageLoaderBanner());        //使用线程请求网络数据        new Thread() {            public void run() {                setData();            }        }.start();    }    //设置下拉刷新    @Override    public void onRefresh() {        handler.postDelayed(new Runnable() {            @Override            public void run() {                imgList.add(0,"http://www.microvirt.com/new_market/img/zhuxian_logo.png");                handler.sendEmptyMessage(0);            }        },2000);    }    //设置上拉加载    @Override    public void onLoadMore() {        handler.postDelayed(new Runnable() {            @Override            public void run() {                imgList.add("http://www.microvirt.com/new_market/img/dhxy_icon_new.png");                handler.sendEmptyMessage(0);            }        },2000);    }    //设置下拉刷新,上拉加载的回弹方法,此方法中还可以设置刷新回弹的时间    public void onStop(){        myXlist.stopRefresh();        myXlist.stopLoadMore();    }    //多条目展示的适配器设置    class XListAdapter extends BaseAdapter {        @Override        public int getCount() {            return apkList.size();        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public int getItemViewType(int position) {            if (position % 2 == 1) {                return 0;            }else {                return 1;            }        }        @Override        public int getViewTypeCount() {            return 2;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            int type = getItemViewType(position);            ViewHolder1 holder1 = null;            ViewHolder2 holder2 = null;            switch (type){                case 0:                    if (convertView == null){                        holder1 = new ViewHolder1();                        convertView = View.inflate(MainActivity.this,R.layout.item1,null);                        holder1.img1 = (ImageView) convertView.findViewById(R.id.Img1);                        holder1.text1 = (TextView) convertView.findViewById(R.id.Text1);                        convertView.setTag(holder1);                    }else{                        holder1 = (ViewHolder1) convertView.getTag();                    }                    holder1.text1.setText(apkList.get(position).name);                    Glide.with(MainActivity.this).load(apkList.get(position).iconUrl).into(holder1.img1);                    break;                case 1:                    if (convertView == null){                        holder2 = new ViewHolder2();                        convertView = View.inflate(MainActivity.this,R.layout.item2,null);                        holder2.img2 = (ImageView) convertView.findViewById(R.id.Img2);                        holder2.text2 = (TextView) convertView.findViewById(R.id.Text2);                        convertView.setTag(holder2);                    }else{                        holder2 = (ViewHolder2) convertView.getTag();                    }                    holder2.text2.setText(apkList.get(position).name);                    Glide.with(MainActivity.this).load(apkList.get(position).iconUrl).into(holder2.img2);                    break;            }            return convertView;        }    }    class ViewHolder1{        ImageView img1;        TextView text1;    }    class ViewHolder2{        ImageView img2;        TextView text2;    }    //得到数据后,将数据中的图片地址放入一个图片集合中,用来设置banner轮播    private void setData() {        try {            URL url = new URL(path);            HttpURLConnection connection = (HttpURLConnection) url.openConnection();            connection.setRequestMethod("GET");            connection.setConnectTimeout(8000);            connection.setReadTimeout(8000);            int code = connection.getResponseCode();            if (code == 200) {                InputStream inputStream = connection.getInputStream();                ByteArrayOutputStream baos = new ByteArrayOutputStream();                int len = 0;                byte[] buffer = new byte[1024];                while ((len = inputStream.read(buffer)) != -1) {                    baos.write(buffer, 0, len);                }                s = baos.toString();            }            Gson gson = new Gson();            MyBean myBean = gson.fromJson(s, MyBean.class);            apkList = myBean.apk;            System.out.println(apkList.size());            imgList = new ArrayList<>();            for (int i = 0; i < apkList.size(); i++) {                imgList.add(apkList.get(i).iconUrl);            }            runOnUiThread(new Runnable() {                @Override                public void run() {                    myBanner.setImages(imgList);                    myBanner.start();                    adapter = new XListAdapter();                    myXlist.setAdapter(adapter);                }            });            System.out.println(imgList.size());        } catch (Exception e) {            e.printStackTrace();        }    }}
//设置加载图片的工具类
public class MyImageLoaderBanner extends ImageLoader{    @Override    public void displayImage(Context context, Object path, ImageView imageView) {        Glide.with(context).load(path).into(imageView);    }}

 
原创粉丝点击