PullToRefresh
来源:互联网 发布:mysql直接复制数据文件 编辑:程序博客网 时间:2024/05/16 09:03
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); } }}
阅读全文
0 0
- pulltorefresh
- PullToRefresh
- PullToRefresh
- PullToRefresh
- PullToRefresh
- PullToRefresh
- pullToRefresh
- PullToRefresh
- PullToRefresh
- pullToRefresh
- pulltorefresh
- Pulltorefresh
- PullToRefresh
- Pulltorefresh
- PullToRefresh
- pullToRefresh
- pulltorefresh
- PullToRefresh
- 学习python:决策树算法
- JVM中的垃圾收集策略
- 实例
- java Queue 接口
- Android 内存泄漏场景分析
- PullToRefresh
- IE报vuex requires a Promise polyfill in this browser问题解决
- CCF 201612-1 中间数
- 【ES6】声明(declare)
- Batch Norm
- icy 框架介绍(开源)
- 引入swagger(2)——与spring-boot整合
- 【转载】你真的会用Retrofit2吗?Retrofit2完全教程
- Laravel 5.x Windows 安装过程以及遇到的坑