PullToRefreshLayout 下拉刷新上拉加载

第一步:  导依赖

compile 'com.jwenfeng.pulltorefresh:library:1.0.3'

 第二步: 布局


<?xml version="1.0" encoding="utf-8"?>
<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/pu">
   <ListView
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/lv">

   </ListView>
</com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>

第三步: main里的逻辑


package com.example.http4;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.google.gson.Gson;
import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;
import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;

import android.support.v4.app.Fragment;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.List;

/**
 * Created by lenovo on 2017/9/20.
 */

public class NewsFragment extends Fragment{
    private int count=1;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0){
                DataDataBean dataBean= (DataDataBean) msg.obj;
                data = dataBean.getNewslist();
                Log.i("pppp",data.toString());

                MyAdapter myAdapter=new MyAdapter(getActivity(),data);
                lv.setAdapter(myAdapter);
            }
        }
    };

    private ListView lv;
    private List<DataDataBean.NewslistBean> data;
    private PullToRefreshLayout pu;

    private String string;
    private int kk=10;
    @Override
    public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.item,container,false);
        lv = (ListView) view.findViewById(R.id.lv);
        
 
 
 
 
        pu = view.findViewById(R.id.pu);
        pu.setRefreshListener(new BaseRefreshListener() {
            @Override
            public void refresh() {
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //在这写上你要刷新的逻辑代码
                         kk++;
                        String path = "http://api.tianapi.com/"+string+"/?key=ec875da4de45bb827b4b7b54d98f876a&num="+kk+"&page="+count+"";
                        getDataFromNet(string);
                        pu.finishRefresh();
                    }
                },1000);
            }
            @Override
            public void loadMore() {
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //在这写上你要刷新的逻辑代码;
                        count++;
                        String path = "http://api.tianapi.com/"+string+"/?key=ec875da4de45bb827b4b7b54d98f876a&num="+kk+"&page="+count+"";
                        getDataFromNet(string);
                        pu.finishLoadMore();
                    }
                },1000);
            }
        });


 
 
 
 
 
 
 
 
 
 
 
 
 
 
        Bundle bundle = getArguments();
        string = bundle.getString("name", "social");

        getDataFromNet(string);
        return view;
    }

    //请求网络数据
    private void getDataFromNet(final String string) {

        new Thread(){
            @Override
            public void run() {

                String path = "http://api.tianapi.com/"+string+"/?key=ec875da4de45bb827b4b7b54d98f876a&num="+kk+"&page="+count+"";
                Log.i("pppp",path);
                try {
                    URL url=new URL(path);
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setReadTimeout(5000);
                    urlConnection.setConnectTimeout(5000);
                    int responseCode = urlConnection.getResponseCode();
                    if (responseCode == 200){
                        Log.i("pppp",responseCode+"");
                        InputStream inputStream = urlConnection.getInputStream();

                        String json = streamToString(inputStream,"utf-8");

                        Gson gson=new Gson();
                        DataDataBean fromJson = gson.fromJson(json, DataDataBean.class);
                        Message message=Message.obtain();
                        message.what=0;
                        message.obj=fromJson;
                        handler.sendMessage(message);
                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (ProtocolException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                super.run();
            }
        }.start();





    }


    private String streamToString(InputStream inputStream, String s) {

        try {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuilder builder = new StringBuilder();
            String f=null;
            while((f=bufferedReader.readLine())!=null){
                builder.append(f);
            }
            bufferedReader.close();

            return builder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


}



猜你喜欢

转载自blog.csdn.net/zh_binfgan/article/details/78045252