//整体代码
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 + "文字啊");
}
}
}
第三方GridView上拉刷新下拉加载
最新推荐文章于 2021-12-05 18:15:13 发布