Android Open Source - Easy-PullToRefresh-Android Main Activity






From Project

Back to project page Easy-PullToRefresh-Android.

License

The source code is released under:

Copyright (c) 2013 neevek <i@neevek.net> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in ...

If you think the Android project Easy-PullToRefresh-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package net.neevek.android.demo.ptr;
/* ww  w.  ja  v a  2 s  .  c  om*/
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import net.neevek.android.lib.ptr.OverScrollListView;

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

public class MainActivity extends Activity implements OverScrollListView.OnRefreshListener, OverScrollListView.OnLoadMoreListener {
    private final static String TAG = MainActivity.class.getSimpleName();

    private OverScrollListView mListView;

    private List<String> mDataList;
    private ArrayAdapter<String> mAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mListView = (OverScrollListView)findViewById(R.id.listview);

        View header = getLayoutInflater().inflate(R.layout.header, null);
        View footer = getLayoutInflater().inflate(R.layout.footer, null);

        mListView.setPullToRefreshHeaderView(header);
//        mListView.addHeaderView(getLayoutInflater().inflate(R.layout.header, null));

//        mListView.addFooterView(getLayoutInflater().inflate(R.layout.footer, null));
        mListView.setPullToLoadMoreFooterView(footer);

        mListView.setOnRefreshListener(this);
        mListView.setOnLoadMoreListener(this);

        mDataList = new ArrayList<String>();
        mAdapter = new ArrayAdapter<String>(this, R.layout.item, R.id.tv_item, mDataList);

        mListView.setAdapter(mAdapter);

        mListView.startRefreshManually(null);
    }

    private void initData() {
        if (mDataList == null) {
            mDataList = new ArrayList<String>();
        } else {
            mDataList.clear();
        }

        for (int i = 0; i < 25; ++i) {
            mDataList.add("Item " + i);
        }

        mAdapter.notifyDataSetChanged();

        if (mDataList.size() > 0 && !mListView.isLoadingMoreEnabled()) {
            mListView.enableLoadMore(true);
        }
    }

    @Override
    public void onLoadMore() {
        new Thread(){
            @Override
            public void run() {
                SystemClock.sleep(1000);

                mListView.post(new Runnable() {
                    @Override
                    public void run() {
                        for (int i = 0, j = mDataList.size(); i < 10; ++i, ++j) {
                            mDataList.add("Item " + j);
                        }
                        mAdapter.notifyDataSetChanged();

                        boolean reachTheEnd = mDataList.size() >= 55;
                        mListView.finishLoadingMore();
                        if (reachTheEnd) {
                            mListView.enableLoadMore(false);
                            Toast.makeText(MainActivity.this, "Reach the end of the list, no more data to load.", Toast.LENGTH_LONG).show();
                        }

                    }
                });
            }
        }.start();
    }

    @Override
    public void onRefresh(Object bizContextObject) {
        new Thread(){
            @Override
            public void run() {
                SystemClock.sleep(2000);

                mListView.post(new Runnable() {
                    @Override
                    public void run() {
                        initData();
                        mListView.finishRefreshing();
                        mListView.resetLoadMoreFooterView();
                    }
                });
            }
        }.start();
    }

    @Override
    public void onRefreshAnimationEnd() {
    }
}




Java Source Code List

net.neevek.android.demo.ptr.MainActivity.java
net.neevek.android.demo.ptr.PullToLoadMoreFooterView.java
net.neevek.android.demo.ptr.PullToRefreshHeaderView.java
net.neevek.android.lib.ptr.OverScrollListView.java