需要的依赖:
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwei.ssp.day17_rk.MainActivity" android:orientation="vertical"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="8" android:id="@+id/plv" /> </LinearLayout>主类:
package com.bwei.ssp.day17_rk; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; 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.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; public class MainActivity extends AppCompatActivity { private PullToRefreshListView plv; private ImageLoader instance; private String url ="http://gank.io/api/data/Android/10/1"; private List<Bean.ResultsBean> list; private Madapter madapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); plv = (PullToRefreshListView) findViewById(R.id.plv); plv.setMode(PullToRefreshBase.Mode.BOTH); itinData(); instance = ImageLoader.getInstance(); madapter = new Madapter(); plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { list.clear(); itinData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { list.clear(); itinData(); } }); ; } private void itinData() { new MAszyTask().execute(url); } class MAszyTask extends AsyncTask<String,Void ,String>{ @Override protected String doInBackground(String... strings) { return Tools.getJson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.e("TAG", s ); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); list = bean.getResults(); plv.setAdapter(madapter); } } private class Madapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { view =View.inflate(MainActivity.this,R.layout.item,null); TextView tv =(TextView) view.findViewById(R.id.tv); ImageView ig =(ImageView) view.findViewById(R.id.ig); tv.setText(list.get(i).getDesc()); instance.displayImage("http://img.gank.io/58925abb-3e11-4d6e-9e44-a4567c03d03f",ig); return view; } } }需要的工具类:
package com.bwei.ssp.day17_rk; import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * Created by lenovo on 2017/10/20. */ public class MApp extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(build); } }需要的请求网络的类:
package com.bwei.ssp.day17_rk; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; 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.URL; /** * Created by lenovo on 2017/10/8. */ public class Tools { private static String tag ="ssp"; public static String getJson(String url){ try { URL url1 = new URL(url); HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection(); int responseCode = urlConnection.getResponseCode(); if(responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); StringBuilder stringBuilder = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String temp=""; while((temp=bufferedReader.readLine())!=null){ stringBuilder.append(temp); } String str = stringBuilder.toString(); return str; }else{ Log.e(tag, responseCode+"" ); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ""; } public static Bitmap getBitmap(String Burl){ try { URL url = new URL(Burl); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if(responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; }else{ Log.e(tag, responseCode+"" ); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }