PullToRefreshLayout加网络请求数据

来源:互联网 发布:最短查找时间优先算法 编辑:程序博客网 时间:2024/06/16 06:00
package com.hanhai.day_14y;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;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.google.gson.Gson;import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;import fragmentkj.Dataa;import fragmentkj.JsonRootBeann;public class NewsFragment extends Fragment {    PullToRefreshLayout prl;    private ListView lv;    private String jsonString="";    private Masd masd;    private List<Dataa> datas = new ArrayList<Dataa>();    private Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            Masd masd = new Masd();            lv.setAdapter(masd);        }    };    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.news_layout, container, false);        prl =(PullToRefreshLayout) view.findViewById(R.id.prl);        lv = (ListView) view.findViewById(R.id.list_view);        prl.setRefreshListener(new BaseRefreshListener() {            @Override            public void refresh() {                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        prl.finishRefresh();                    }                },2000);            }            @Override            public void loadMore() {                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        prl.finishLoadMore();                    }                },2000);            }        });        return view;    }    class Masd extends BaseAdapter{        @Override        public int getCount() {            return datas.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) {            View v = View.inflate(getActivity(), R.layout.item, null);            ImageView img = (ImageView) v.findViewById(R.id.img);            TextView tv = (TextView) v.findViewById(R.id.tv);            ImageLoader.getInstance().displayImage(datas.get(i).getThumbnail_pic_s(),img);            tv.setText(datas.get(i).getTitle());            return v;        }    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        Bundle bundle = getArguments();        String string = bundle.getString("name", "top");        getDataFromNet(string);    }    private void getDataFromNet(final String string) {        new Thread(){            @Override            public void run() {                String path = "http://v.juhe.cn/toutiao/index?type="+string+"&key=597b4f9dcb50e051fd725a9ec54d6653";                try {                    URL url = new URL(path);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    int responseCode = connection.getResponseCode();                    if(responseCode==200){                        InputStream inputStream = connection.getInputStream();                        String json=getwangl(inputStream,"utf-8");                        Gson gson = new Gson();                        JsonRootBeann jsons = gson.fromJson(json, JsonRootBeann.class);                        datas=jsons.getResult().getData();                        Message message = new Message();                        Bundle bundle = new Bundle();                        bundle.putString("s",datas.toString());                        message.setData(bundle);                        handler.sendMessage(message);                    }                } catch (Exception e) {                    e.printStackTrace();                }            }        }.start();    }    private String getwangl(InputStream inputStream, String s) {        try {            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s);            BufferedReader reader = new BufferedReader(inputStreamReader);            StringBuilder builder = new StringBuilder();            String cou;            while ((cou=reader.readLine())!=null){                builder.append(cou);            }            inputStream.close();            reader.close();            jsonString=builder.toString();            return  builder.toString();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }}
//布局文件<com.jwenfeng.library.pulltorefresh.PullToRefreshLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/prl"    android:orientation="vertical">    <ListView        android:id="@+id/list_view"        android:layout_width="match_parent"        android:layout_height="match_parent">    </ListView></com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>