package fmh.bwie.com.fanmeihua20170916; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; 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.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; import java.util.ArrayList; import java.util.List; import fmh.bwie.com.fanmeihua20170916.bean.Shiliu; public class MainActivity extends AppCompatActivity { private PullToRefreshListView plv; String url = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1"; private List<Shiliu.NewslistBean> newslist; ArrayList<Shiliu.NewslistBean> list =new ArrayList<>(); private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new MyAsycnJson().execute(url); //获取id plv = (PullToRefreshListView) findViewById(R.id.plv); //设置可以上拉可以下拉 plv.setMode(PullToRefreshBase.Mode.BOTH); plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { list.clear(); new MyAsycnJson().execute(url); myAdapter.notifyDataSetChanged(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { new MyAsycnJson().execute(url); myAdapter.notifyDataSetChanged(); } }); } private class MyAdapter 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) { ViewHolder vh; if (view == null) { view = View.inflate(MainActivity.this, R.layout.plv_item, null); vh = new ViewHolder(); vh.img = (ImageView)view.findViewById(R.id.img); vh.title =(TextView)view.findViewById(R.id.title); view.setTag(vh); } else { vh = (ViewHolder)view.getTag(); } ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),vh.img); vh.title.setText(list.get(i).getTitle()); return view; } class ViewHolder { ImageView img; TextView title; } } private class MyAsycnJson extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); StringBuffer stringBuffer = new StringBuffer(); String str = ""; while ((str = bufferedReader.readLine()) != null) { stringBuffer.append(str); } return stringBuffer.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Shiliu shiliu = gson.fromJson(s, Shiliu.class); newslist = shiliu.getNewslist(); list.addAll(newslist); //创建适配器 myAdapter = new MyAdapter(); plv.setAdapter(myAdapter); myAdapter.notifyDataSetChanged(); plv.onRefreshComplete(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } }
PullToRefresh
最新推荐文章于 2019-05-15 11:26:20 发布