package com.marshalchen.common.demoofui.superlistview; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import com.marshalchen.common.commonUtils.logUtils.Logs; import com.marshalchen.common.demoofui.R; import com.marshalchen.common.uimodule.superlistview.OnMoreListener; import com.marshalchen.common.uimodule.superlistview.SuperListview; import com.marshalchen.common.uimodule.superlistview.SwipeDismissListViewTouchListener; import java.util.ArrayList; public class ListSample extends Activity implements SwipeRefreshLayout.OnRefreshListener, OnMoreListener { private SuperListview mList; private ArrayAdapter<String> mAdapter; @SuppressWarnings("ResourceAsColor") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.super_list_view_activity_list_sample); // Empty list view demo, just pull to add more items ArrayList<String> lst = new ArrayList<String>(); mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, lst); // This is what you're looking for mList = (SuperListview) findViewById(R.id.list); Thread thread = new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { mAdapter.add("More stuff1"); mAdapter.add("More stuff2"); mAdapter.add("More stuff3"); mAdapter.add("More stuff4"); mAdapter.add("More stuff5"); mAdapter.add("More stuff6"); mAdapter.add("More stuff7"); mAdapter.add("More stuff8"); mAdapter.add("More stuff9"); mList.setAdapter(mAdapter); } }); } }); thread.start(); // Setting the refresh listener will enable the refresh progressbar mList.setRefreshListener(this); // Wow so beautiful mList.setRefreshingColor(android.R.color.holo_orange_light, android.R.color.holo_blue_light, android.R.color.holo_green_light, android.R.color.holo_red_light); // I want to get loadMore triggered if I see the last item (1) mList.setupMoreListener(this, 8); // mList.setupSwipeToDismiss(new SwipeDismissListViewTouchListener.DismissCallbacks() { // @Override // public boolean canDismiss(int position) { // return true; // } // // @Override // public void onDismiss(ListView listView, int[] reverseSortedPositions) { // } // }, true); } @Override public void onRefresh() { Toast.makeText(this, "Refresh", Toast.LENGTH_LONG).show(); // enjoy the beaty of the progressbar Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { // demo purpose, adding to the top so you can see it mAdapter.insert("New stuff", 0); } }, 2000); } @Override public void onMoreAsked(int numberOfItems, int numberBeforeMore, int currentItemPos) { Toast.makeText(this, "More", Toast.LENGTH_SHORT).show(); //demo purpose, adding to the bottom Logs.d("more-----"); Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { Logs.d("more----"); // demo purpose, adding to the top so you can see it mAdapter.add("More asked, more served" + System.currentTimeMillis()); mList.hideMoreProgress(); } }, 2000); } }