PullToRefresh 上拉下拉刷新

ListView

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

import java.util.Arrays;
import java.util.LinkedList;

public class PullListView extends AppCompatActivity {

PullToRefreshListView plistview;

private LinkedList<String> mListItems;
private ArrayAdapter<String> mAdapter;

private String[] mStrings = { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
        "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
        "Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
        "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
        "Allgauer Emmentaler" };
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pull_list_view);

    //获取控件
    plistview = findViewById(R.id.plistview);

    //设置监听
    plistview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
        //下拉刷新时调用
        @Override
        public void onRefresh(PullToRefreshBase<ListView> refreshView) {
           new AsyncTask<Void,Void,String[]>(){

               @Override
               protected String[] doInBackground(Void... voids) {
                   try {
                       Thread.sleep(2000);
                   } catch (InterruptedException e) {
                       e.printStackTrace();
                   }
                   return mStrings;
               }

               @Override
               protected void onPostExecute(String[] strings) {
                   //刷新完成后添加数据
                   mListItems.addFirst("哈哈哈哈哈");
                   //更新适配器
                   mAdapter.notifyDataSetChanged();

                   //刷新完成
                   plistview.onRefreshComplete();
               }
           }.execute();
        }
    });

    //拉到底部时调用
    plistview.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
        @Override
        public void onLastItemVisible() {
            Toast.makeText(PullListView.this,"上拉",Toast.LENGTH_LONG).show();
        }
    });
     //获取到pullRefresh里面的listview控件,方便设置适配器
    ListView listView = plistview.getRefreshableView();

    mListItems = new LinkedList<>();
    mListItems.addAll(Arrays.asList(mStrings));

    //适配器

    // ArrayAdapter  第一个参数表示上下文,第二个参数表示一个包含TextView,
    // 用来填充listView的每一行的布局资源ID,第三个参数为ListView的内容。

    //ArrayAdapter 接受一个数组或者List作为参数来构建显示ListView
    mAdapter = new ArrayAdapter<>(this,R.layout.plist,mListItems);
    plistview.setAdapter(mAdapter);
}

}

GridView

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;

import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;

import java.util.Arrays;
import java.util.LinkedList;

public class PullGridView extends AppCompatActivity {

PullToRefreshGridView pgridview;

private LinkedList<String> mListItems;
private ArrayAdapter<String> adapter;

private String[] mStrings = { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
        "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
        "Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
        "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
        "Allgauer Emmentaler" };
@Override

     protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pull_grid_view);

    pgridview = findViewById(R.id.pgridview);

    pgridview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
            new AsyncTask<Void,Void,LinkedList<String>>(){

                @Override
                protected LinkedList<String> doInBackground(Void... voids) {

                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(LinkedList<String> strings) {

                    //添加数据
                    mListItems.addFirst("哈哈哈哈哈");
                    adapter.notifyDataSetChanged();

                    pgridview.onRefreshComplete();
                    super.onPostExecute(strings);
                }
            }.execute();
        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
            new AsyncTask<Void,Void,LinkedList<String>>(){

                @Override
                protected LinkedList<String> doInBackground(Void... voids) {

                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(LinkedList<String> strings) {

                    //添加数据
                    mListItems.addFirst("哈哈哈哈哈");
                    adapter.notifyDataSetChanged();

                    pgridview.onRefreshComplete();
                    super.onPostExecute(strings);
                }
            }.execute();
        }
    });

    //获取listview控件
    GridView gridView = pgridview.getRefreshableView();
    mListItems = new LinkedList<>();
    mListItems.addAll(Arrays.asList(mStrings));

    //适配器
    adapter = new ArrayAdapter<String>(this,R.layout.pgridview, mListItems);

    pgridview.setAdapter(adapter);


}

}

猜你喜欢

转载自blog.csdn.net/KWON_QMY/article/details/83339753