第一步: 导依赖
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; } }