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

来源:互联网 发布:广电网络公司员工编制 编辑:程序博客网 时间:2024/05/12 01:08

//整体代码
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 mListItems = new ArrayList();;
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