PullToRefreshListView 的使用

来源:互联网 发布:wifi放大器 mac绑定 编辑:程序博客网 时间:2024/06/06 07:27

  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:id="@+id/activity_main"    android:layout_width="match_parent" android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.bawei.pulldemo2.MainActivity">    <com.handmark.pulltorefresh.library.PullToRefreshListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/pull"/></RelativeLayout>

代码

package com.bawei.pulldemo2;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.widget.ListView;import android.widget.Toast;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.List;public class MainActivity extends AppCompatActivity {    String jsonurl = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";    int count = 1;    private PullToRefreshListView pull;    private   List<User.DataBean> list;    private Myadapter adapter;    Handler h=new Handler();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        //显示第一页面        new AsyncTask<String, Integer, String>() {            @Override            protected String doInBackground(String... strings) {                String getjsonstr = new Utlis().getjsonstr(jsonurl + count);                return getjsonstr;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);               list = new Gson().fromJson(s, User.class).getData();            adapter=new Myadapter(MainActivity.this,list);                pull.setAdapter(adapter);            }        }.execute();    }    private void initView() {        pull = (PullToRefreshListView) findViewById(R.id.pull);        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {            @Override            public void onRefresh(PullToRefreshBase<ListView> refreshView) {                count=1;                new AsyncTask<String, Integer, String>() {                    @Override                    protected String doInBackground(String... strings) {                        String getjsonstr = new Utlis().getjsonstr(jsonurl + count);                        return getjsonstr;                    }                    @Override                    protected void onPostExecute(String s) {                        super.onPostExecute(s);                        list = new Gson().fromJson(s, User.class).getData();                        adapter=new Myadapter(MainActivity.this,list);                        pull.setAdapter(adapter);                        h.postDelayed(new Runnable() {                            @Override                            public void run() {                                pull.onRefreshComplete();                            }                        },500);                    }                }.execute();            }        });        pull.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {            @Override            public void onLastItemVisible() {                count++;                new AsyncTask<String, Integer, String>() {                    @Override                    protected String doInBackground(String... strings) {                        String getjsonstr = new Utlis().getjsonstr(jsonurl + count);                        return getjsonstr;                    }                    @Override                    protected void onPostExecute(String s) {                        super.onPostExecute(s);                        List<User.DataBean> data = new Gson().fromJson(s, User.class).getData();                        list.addAll(data);                        adapter.notifyDataSetChanged();                    }                }.execute();            }        });    }}

原创粉丝点击