Pull to refresh and upload a list, e.g. facebook

here I use a sliding drawer. when you click on the home icon 3 tabs are displayed
1) what concept should I use for tabs?
2) I want to apply pulltorefereshand loadmorein the list, for example facebook? in the fact that you also saw that when scrolling up the progress step, the cancellation request is also hidden.

enter image description here

+5
source share
3 answers
public class ListDemo extends Fragment{
    ArrayAdapter<String> files;
    private LinkedList<String> mListItems;
    PullAndLoadListView lyt ;
    //  ListView lv1;

    // The data to be displayed in the ListView
    private String[] mNames = { "Fabian", "Carlos", "Alex", "Andrea", "Karla",
            "Freddy", "Lazaro", "Hector", "Carolina", "Edwin", "Jhon",
            "Edelmira", "Andres" };

    // The data to be displayed in the ListView
    private String[] mAnimals = { "Perro", "Gato", "Oveja", "Elefante", "Pez",
            "Nicuro", "Bocachico", "Chucha", "Curie", "Raton", "Aguila",
            "Leon", "Jirafa" };



    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        final View v = inflater.inflate(R.layout.tab_frag3_layout, container, false);
        mListItems = new LinkedList<String>();
        mListItems.addAll(Arrays.asList(mNames));
        lyt = (PullAndLoadListView)v.findViewById(R.id.tab_frag3_listview1);

        if (container == null) {
            return null;
        }

        files = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,mListItems);
        lyt.setAdapter(files);
        lyt.setOnRefreshListener(new OnRefreshListener() {

            @Override
            public void onRefresh() {
                // TODO Auto-generated method stub
                new PullToRefreshDataTask().execute();
            }
        });
        lyt.setOnLoadMoreListener(new OnLoadMoreListener() {

            @Override
            public void onLoadMore() {
                // TODO Auto-generated method stub
                new LoadMoreDataTask().execute();
            }
        });
        return v;

    }
    private class LoadMoreDataTask extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {

            if (isCancelled()) {
                return null;
            }

            // Simulates a background task
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }

            for (int i = 0; i < mAnimals.length; i++)
                mListItems.add(mAnimals[i]);

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            mListItems.add("Added after load more");

            // We need notify the adapter that the data have been changed
            files.notifyDataSetChanged();

            // Call onLoadMoreComplete when the LoadMore task, has finished
            lyt.onLoadMoreComplete();

            super.onPostExecute(result);
        }

        @Override
        protected void onCancelled() {
            // Notify the loading more operation has finished
            lyt.onLoadMoreComplete();
        }
    }

    private class PullToRefreshDataTask extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {

            if (isCancelled()) {
                return null;
            }

            // Simulates a background task
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }

            for (int i = 0; i < mAnimals.length; i++)
                mListItems.addFirst(mAnimals[i]);

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            mListItems.addFirst("Added after pull to refresh");

            // We need notify the adapter that the data have been changed
            files.notifyDataSetChanged();

            // Call onLoadMoreComplete when the LoadMore task, has finished
            lyt.onRefreshComplete();

            super.onPostExecute(result);
        }

        @Override
        protected void onCancelled() {
            // Notify the loading more operation has finished
            lyt.onLoadMoreComplete();
        }
    }

}

here is the source code of the pull-to-refresh and load-more library .

+4
source

Use this library, I used it days ago and work fine:

RefreshableListView

+3

I did not use this library myself, and it was discontinued (2 months ago), but it looks great with examples and that's it:

https://github.com/chrisbanes/Android-PullToRefresh/wiki/Quick-Start-Guide

From what I read, basically you need to replace your own list with a list of library lists and import the jar file, and you're good to go; -)

+1
source

All Articles