pull to refresh and loadmore listview like facebook [closed]
P

3

5

here i am using sliding drawer. in that on click home icon it shows 3 tabs
1) which concept should i apply for tab ?
2) I want to apply pulltoreferesh and loadmore in listview like facebook ? in that you have also seen that when scrolling up progressbar gets hide and request get cancel.

enter image description here

Philanthropy answered 12/3, 2013 at 13:34 Comment(0)
P
4
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 source code of pull-to-refresh and load-more library.

Philanthropy answered 16/3, 2013 at 9:26 Comment(2)
can you please upload ur xml file also ?Radiculitis
please add custom listview in your xml like this github.com/shontauro/…Philanthropy
R
3

Use this library, I have used days ago and work perfect:

RefreshableListView

Recalescence answered 30/5, 2013 at 18:38 Comment(0)
D
1

I haven't used this library myself and it has been discontinued (2 months ago), but it looks great with examples and all:

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

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

Dissatisfactory answered 13/3, 2013 at 11:25 Comment(2)
i am using 2 libraries android-support-v4.jar,LoadMoreListView(com.costum.android.widget)Philanthropy
So what is the problem exactly? I have you a link to a library for pull-refresh in a listview or listfragment. I've never heard of the other library and don't intend to look at it right now. Why not try my link instead?Dissatisfactory

© 2022 - 2024 — McMap. All rights reserved.