回答

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(); 
     } 
    } 

} 

這裏是源碼e代碼pull-to-refresh and load-more庫。

+0

你能否請上傳你的xml文件呢? – 2014-08-20 07:16:02

+0

請在您的xml中添加自定義列表視圖像這樣https://github.com/shontauro/android-pulltorefresh-and-loadmore#layout-for-pullandload-listview – 2014-08-20 08:42:06

+1

好的謝謝..我做到了:) – 2014-08-20 10:45:48

1

我還沒有使用這個庫自己和它已經停產(2個月前),但它與實例和所有看起來不錯:

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

從我讀,基本上你需要使用圖書館的列表視圖來代替自己的ListView和導入jar文件,你是好去;-)

+0

我使用2個庫Android的支持,v4.jar,LoadMoreListView(com.costum.android.widget) – 2013-03-13 11:58:29

+0

所以究竟是什麼問題?我有一個鏈接到一個庫,用於在listview或listfragment中進行拉式刷新。我從來沒有聽說過其他圖書館,也不打算現在看它。爲什麼不嘗試我的鏈接呢? – Darwind 2013-03-13 16:20:43