多条目展示 上拉刷新 下拉加载

================================================Helper===============================================
private XListView listView;
private  String dataUrl="https://code.aliyun.com/598254259/FristProject/raw/master/bw_list.txt";
private NewsAdaper newsAdaper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    newsAdaper = new NewsAdaper(this);
    listView = (XListView) findViewById(R.id.view);
    listView.setAdapter(newsAdaper);


    findViewById(R.id.jiazai).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
         doHttp();
        }
     });

    listView.setPullLoadEnable(true);
    listView.setXListViewListener(new XListView.IXListViewListener() {
        @Override
        public void onRefresh() {
            //下拉刷新
            doHttp();
        }

        @Override
        public void onLoadMore() {
            //上拉加载
            listView.stopLoadMore();
        }
    });
}
private void doHttp() {
    new Helper().get(dataUrl).result(new Helper.HttpListener() {
        @Override
        public void success(String data) {
         News bean=   new Gson().fromJson(data, News.class);
            List<News.ListBean> list=bean.getItems();
            newsAdaper.setList(list);
            listView.stopRefresh();
        }
    });
}
private void toast(String d){
    Toast.makeText(this,d,Toast.LENGTH_SHORT).show();
}

===================================App=============================================

import android.app.Application;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
        ImageLoader.getInstance().init(configuration);

    }
}

=========================================Helper============================================

package com.bwie.day07;

import android.os.Handler;
import android.os.Message;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class Helper {

    public Helper() {
    }

    public Helper get(final String url) {
        new Thread() {
            @Override
            public void run() {
                super.run();
                try {
                    URL url1 = new URL(url);
                    HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.connect();

                    int i = connection.getResponseCode();
                    if (i == HttpURLConnection.HTTP_OK) {
                        InputStream is = connection.getInputStream();
                        String data = convert2sString(is);
                        Message message = Message.obtain();
                        message.obj = data;
                        handler.sendMessage(message);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
        return this;
    }

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            String data = (String) msg.obj;
            linstener.success(data);
        }
    };

    private HttpListener linstener;
    public void result(HttpListener linstener){
        this.linstener=linstener;
    }

    public interface HttpListener{
     void success(String data);
    }
    private String convert2sString(InputStream is) throws IOException {
        ByteArrayOutputStream ia = new ByteArrayOutputStream();
        int len = -1;
        byte[] buffer = new byte[512];
        while ((len = is.read(buffer)) != -1) {
            ia.write(buffer, 0, len);
        }
        return new String(ia.toByteArray());
    }

}

=======================================适配器=================================================

package com.bwie.day07;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class NewsAdaper extends BaseAdapter {
    private Context context;

    public NewsAdaper(Context context) {
        this.context = context;
    }

    private List<News.ListBean> list = new ArrayList<>();

    public void setList(List<News.ListBean> list) {
        this.list = list;
        notifyDataSetChanged();
    }

    @Override
    public int getViewTypeCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        return list.get(position).getType();
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        int type = getItemViewType(i);
        ViewHolder1 viewHolder1;
        ViewHolder2 viewHolder2;
        ViewHolder3 viewHolder3;
        switch (type) {
            case 0:
                if (view == null) {
                    view = View.inflate(context, R.layout.lay1, null);
                    viewHolder1=new ViewHolder1();
                    viewHolder1.img=(ImageView)view.findViewById(R.id.news_pic);
                    viewHolder1.men1=(TextView) view.findViewById(R.id.news_desc);
                    viewHolder1.men2=(TextView) view.findViewById(R.id.news_title);
                    view.setTag(viewHolder1);
                }else{
                    viewHolder1=(ViewHolder1) view.getTag();
                }
                News.ListBean bean= list.get(i);
                viewHolder1.men1.setText(bean.getTitle());
                viewHolder1.men1.setText(bean.getDesc());
                ImageLoader.getInstance().displayImage(bean.getImage(),viewHolder1.img);
                break;
            case 1:
                if (view == null) {
                    view = View.inflate(context, R.layout.lay3, null);
                    viewHolder2=new ViewHolder2();
                    viewHolder2.img1=(ImageView)view.findViewById(R.id.img1);
                    viewHolder2.img2=(ImageView) view.findViewById(R.id.img2);
                    viewHolder2.img3=(ImageView) view.findViewById(R.id.img3);
                    view.setTag(viewHolder2);
                }else{
                    viewHolder2=(ViewHolder2) view.getTag();
                }
                News.ListBean bean1=list.get(i);
                List<News.ListBean.ImageBean> imgage=bean1.getImages();
                ImageLoader.getInstance().displayImage(imgage.get(0).getPic(),viewHolder2.img1);
                ImageLoader.getInstance().displayImage(imgage.get(1).getPic(),viewHolder2.img2);
                ImageLoader.getInstance().displayImage(imgage.get(2).getPic(),viewHolder2.img3);
                break;
            case 2:
                if (view == null) {
                    view = View.inflate(context, R.layout.lay2, null);
                    viewHolder3=new ViewHolder3();
                    viewHolder3.tv=(TextView)view.findViewById(R.id.gong);
                    view.setTag(viewHolder3);
                }else{
                    viewHolder3=(ViewHolder3) view.getTag();
                }
                 News.ListBean bean2=list.get(i);
                viewHolder3.tv.setText(bean2.getTitle());
                break;
        }
        return view;
    }


    class ViewHolder1 {
        ImageView img;
        TextView men1, men2;
    }

    class ViewHolder2 {

        ImageView img1, img2, img3;
    }

    class ViewHolder3 {
        ;
        TextView tv;
    }

}

=====================================News=================================================

package com.bwie.day07;

import java.util.List;

public class News {

    private List<ListBean> items;

    public List<ListBean> getItems() {
        return items;
    }

    public void setItems(List<ListBean> items) {
        this.items = items;
    }

    public class ListBean{
        private int type;
        private String title;
        private String desc;
        private String image;
        private List<ImageBean> images;

        public int getType() {
            return type;
        }

        public void setType(int type) {
            this.type = type;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getImage() {
            return image;
        }

        public void setImage(String image) {
            this.image = image;
        }

        public List<ImageBean> getImages() {
            return images;
        }

        public void setImages(List<ImageBean> images) {
            this.images = images;
        }

        public class ImageBean{
            private String pic;

            public String getPic() {
                return pic;
            }

            public void setPic(String pic) {
                this.pic = pic;
            }
        }
    }
}

============================布局========================================================

<Button//主页面
    android:id="@+id/jiazai"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="加载" />

<com.example.xlistviewlib.XListView
    android:id="@+id/view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

======lay1

<ImageView
    android:id="@+id/news_pic"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginRight="10dp"
    android:src="@mipmap/ic_launcher" />

<TextView
    android:id="@+id/news_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/news_pic"
    android:ellipsize="end"
    android:lines="1"
    android:text="我是Title" />

<TextView
    android:id="@+id/news_desc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/news_title"
    android:layout_toRightOf="@+id/news_pic"
    android:ellipsize="end"
    android:lines="3"
    android:text="我是Desc" />

====lay2

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="我是公告"
    android:id="@+id/gong"
    />

====lay3

<ImageView
    android:id="@+id/img1"
    android:layout_width="0dp"
    android:layout_height="100dp"
    android:layout_weight="1"
    android:src="@mipmap/ic_launcher"

    />

<ImageView
    android:id="@+id/img2"
    android:layout_width="0dp"
    android:layout_height="100dp"
    android:layout_weight="1"
    android:src="@mipmap/ic_launcher" />

<ImageView
    android:id="@+id/img3"
    android:layout_width="0dp"
    android:layout_height="100dp"
    android:layout_weight="1"
    android:src="@mipmap/ic_launcher"

    />

猜你喜欢

转载自blog.csdn.net/qq_43131935/article/details/82491312