PullToRefreshListView 刷新
来源:互联网 发布:mac qq怎么退出讨论组 编辑:程序博客网 时间:2024/05/17 04:24
这是 xml文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/refresh_list_view" ptr:ptrDrawable="@drawable/default_ptr_flip" ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#383838" ptr:ptrHeaderTextColor="#FFFFFF"/></RelativeLayout>Mainactivity 主界面
package com.example.liuhuan20171019;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ListView;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.ILoadingLayout;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private List<DataDataBean.NewslistBean>list=new ArrayList<>(); private PullToRefreshListView refresh_list_view; private ILoadingLayout startLabels; private ILoadingLayout endLabels; private int page = 1; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); refresh_list_view = (PullToRefreshListView) findViewById(R.id.refresh_list_view); getData(); refresh_list_view.setMode(PullToRefreshBase.Mode.BOTH); startLabels = refresh_list_view.getLoadingLayoutProxy(true, false); startLabels.setPullLabel("下拉刷新"); startLabels.setRefreshingLabel("正在刷新..."); startLabels.setReleaseLabel("放开刷新"); endLabels = refresh_list_view.getLoadingLayoutProxy(false, true); endLabels.setPullLabel("上拉刷新"); endLabels.setRefreshingLabel("正在载入..."); endLabels.setReleaseLabel("放开刷新..."); refresh_list_view.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { getRefreshData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { page++; getData(); refresh_list_view.onRefreshComplete(); } }); } private void getRefreshData() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { try { URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); int responseCode = connection.getResponseCode(); if (responseCode == 200){ InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream , "utf-8"); return json ; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); list.addAll(dataDataBean.getNewslist()); setAdapter(); refresh_list_view.onRefreshComplete(); } }; asyncTask.execute(); } private void setAdapter() { if (myAdapter == null) { myAdapter = new MyAdapter(MainActivity.this, list); refresh_list_view.setAdapter(myAdapter); }else{ myAdapter.notifyDataSetChanged(); } } private void getData() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { try { URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+page); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); int responseCode = connection.getResponseCode(); if (responseCode == 200){ InputStream inputStream = connection.getInputStream(); String json = streamToString(inputStream , "utf-8"); return json ; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String s) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); list.addAll(dataDataBean.getNewslist()); setAdapter(); } }; asyncTask.execute(); } private String streamToString(InputStream inputStream, String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null){ builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }}
阅读全文
0 0
- PullToRefreshListView 刷新
- PullToRefreshListView刷新
- PullToRefreshListView刷新
- PullToRefreshListView 自动刷新
- PullToRefreshListView 自动刷新
- PullToRefreshListView局部刷新
- PullToRefreshListView下拉刷新
- PulltorefreshListView自动刷新
- PullToRefreshListView 局部刷新问题
- PullToRefreshListView实现下拉刷新
- Pulltorefreshlistview刷新使用
- PullToRefreshListView设置刷新时间
- PullToRefreshListView刷新2
- 检测新版本,PullToRefreshListView刷新,加载
- PullToRefreshListView上拉下拉刷新
- HttpConnection网络请求,pullToRefreshListView刷新
- PullToRefreshListView上拉刷新和下拉刷新
- PullToRefreshListView 进入不能进入刷新状态解决
- C# IEnumberable & IQueryable 区别
- 【观察】推动容器公有云中国落地 Rancher坚持与梦想的力量
- matlab 2016b安装libsvm-3.22过程
- #C语言.操作符和表达式简单介绍
- RHEL6使用Centos6 Yum源
- PullToRefreshListView 刷新
- Java校招面试 Google面试官亲授
- 【Windows网络编程】完成端口IOCP介绍(超详细)
- Vijos P1021 Victoria的舞会1
- http协议
- Spark Streaming从Flume读取数据流(pull模式)
- 机器学习-学习笔记 Caffe安装-MNIST(手写体数字识别)
- k近邻法: k-nearest neighbor
- C语言基础