第三方GridView上拉刷新下拉加载

//整体代码
package com.example.gardview;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;

import android.os.AsyncTask;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    private PullToRefreshGridView mPullRefreshGridView;
    private int mItemCount = 13;
    private List<String> mListItems = new ArrayList<String>();;
    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     // 得到控件
            mPullRefreshGridView = (PullToRefreshGridView) findViewById(R.id.pull_refresh_grid);
        // 初始化数据和数据源
            initDatas();
            initIndicator();
            adapter = new MyAdapter();
            mPullRefreshGridView.setAdapter(adapter);


            //监听事件
            mPullRefreshGridView.setOnRefreshListener(new OnRefreshListener2<GridView>()
                    {
                        @Override
                        public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView)
                        {
                            Log.e("TAG", "onPullDownToRefresh"); // Do work to
                            String label = DateUtils.formatDateTime(getApplicationContext(),System.currentTimeMillis(),DateUtils.FORMAT_SHOW_TIME| DateUtils.FORMAT_SHOW_DATE| DateUtils.FORMAT_ABBREV_ALL);
                            // Update the LastUpdatedLabel
                            refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
                            Toast.makeText(MainActivity.this, "下拉刷新", 0).show();
                            new GetDataTaska().execute();
                        }
                        @Override
                        public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView)
                        {
                            Toast.makeText(MainActivity.this, "开始上拉加载", 0).show();
                            Log.e("TAG", "onPullUpToRefresh"); // Do work to refresh
                                                                // the list here.
                            new GetDataTask().execute();
                        }
                    });
    }
    private class GetDataTask extends AsyncTask<Void, Void, Void>
    {
        @Override
        protected Void doInBackground(Void... params)
        {
            try
            {
                Thread.sleep(2000);
            } catch (InterruptedException e)
            {
            }
            return null;
        }
        //上拉加载
        @Override
        protected void onPostExecute(Void result)
        {
            mListItems.add("" + mItemCount--);
            adapter.notifyDataSetChanged();
            // Call onRefreshComplete when the list has been refreshed.
            mPullRefreshGridView.onRefreshComplete();
        }
    }
    private class GetDataTaska extends AsyncTask<Void, Void, Void>
    {
        @Override
        protected Void doInBackground(Void... params)
        {
            try
            {
                Thread.sleep(2000);
            } catch (InterruptedException e)
            {
            }
            return null;
        }
        //上拉加载
        @Override
        protected void onPostExecute(Void result)
        {
            mListItems.add("" + mItemCount++);
            adapter.notifyDataSetChanged();
            // Call onRefreshComplete when the list has been refreshed.
            mPullRefreshGridView.onRefreshComplete();
        }
    }
    public class MyAdapter extends BaseAdapter{
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return mListItems.size();
        }
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }
        @SuppressLint("ViewHolder") @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            View view=View.inflate(MainActivity.this, R.layout.item, null);
        TextView    Tex=(TextView) view.findViewById(R.id.item_text);

        Tex.setText(""+mItemCount);
            return view;
        }

    }
    private void initIndicator() {
        ILoadingLayout startLabels = mPullRefreshGridView.getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("你可劲拉,拉...");// 刚下拉时,显示的提示
        startLabels.setRefreshingLabel("好嘞,正在刷新...");// 刷新时
        startLabels.setReleaseLabel("你敢放,我就敢刷新...");// 下来达到一定距离时,显示的提示

        ILoadingLayout endLabels = mPullRefreshGridView.getLoadingLayoutProxy(false, true);
        endLabels.setPullLabel("你可劲拉,拉2...");// 刚下拉时,显示的提示
        endLabels.setRefreshingLabel("好嘞,正在刷新2...");// 刷新时
        endLabels.setReleaseLabel("你敢放,我就敢刷新2...");// 下来达到一定距离时,显示的提示



    }
    //添加数据
    private void initDatas() {

        for (int i = 0; i < mItemCount; i++)
        {
            mListItems.add(i + "文字啊");
        }

    }



}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值