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);


}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值