第三方控件PullToRefresh使用过程

原创 2016年08月29日 14:52:19

先到githhub找到chrisbanes/Android-pulltorefresh.(支持的组件多,也支持上下刷新。)注意v4包的导入问题

下载地址:https://github.com/chrisbanes/Android-PullToRefresh

遇到问题1:设置ptr属性,没代码提示。我是到library直接复制。(谁有好点方法?)

                2:设置涮新模式为both的setonRefreshListener(new onRefresh2)时没显示方法。

布局代码:

  1.     <com.handmark.pulltorefresh.library.PullToRefreshListView  
  2.         android:id="@+id/pull_to_refresh_listview"  
  3.         android:layout_height="fill_parent"  
  4.         android:layout_width="fill_parent" /> 
MainActivity源码:
  1. package com.mpulltorefreshdemo;  
  2.   
  3. import java.util.Arrays;  
  4. import java.util.LinkedList;  
  5.   
  6. import android.app.Activity;  
  7. import android.os.AsyncTask;  
  8. import android.os.Bundle;  
  9. import android.text.format.DateUtils;  
  10. import android.view.Menu;  
  11. import android.widget.ArrayAdapter;  
  12. import android.widget.ListView;  
  13.   
  14. import com.handmark.pulltorefresh.library.PullToRefreshBase;  
  15. import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;  
  16. import com.handmark.pulltorefresh.library.PullToRefreshListView;  
  17.   
  18. public class MainActivity extends Activity {  
  19.     private PullToRefreshListView mPullToRefreshListView;  
  20.     private LinkedList<String> mListItems;  
  21.     private ArrayAdapter<String> mAdapter;  
  22.   
  23.     @Override  
  24.     protected void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.activity_main);  
  27.           
  28.         // Set a listener to be invoked when the list should be refreshed.  
  29.         mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_to_refresh_listview);  
  30.         mPullToRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() { 
  31.  //我用onRefreshListener2时没有下面的onRefresf方法。
  32.             @Override  
  33.             public void onRefresh(PullToRefreshBase<ListView> refreshView) {  
  34.                 String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(),  
  35.                         DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);  
  36.                   
  37.                 // Update the LastUpdatedLabel  
  38.                 refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);  
  39.                   
  40.                 // Do work to refresh the list here.  
  41.                 new GetDataTask().execute();  
  42.             }  
  43.         });  
  44.           
  45.         ListView actualListView = mPullToRefreshListView.getRefreshableView();  
  46.           
  47.         mListItems = new LinkedList<String>();  
  48.         mListItems.addAll(Arrays.asList(mStrings));  
  49.           
  50.         mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems);  
  51.         actualListView.setAdapter(mAdapter);  
  52.     }  
  53.       
  54.     private class GetDataTask extends AsyncTask<Void, Void, String[]> {  
  55.   
  56.         @Override  
  57.         protected String[] doInBackground(Void... params) {  
  58.             // Simulates a background job.  
  59.             try {  
  60.                 Thread.sleep(4000);  
  61.             } catch (InterruptedException e) {  
  62.             }  
  63.             return mStrings;  
  64.         }  
  65.         @Override  
  66.         protected void onPostExecute(String[] result) {  
  67.             mListItems.addFirst("Added after refresh...");  
  68.             mAdapter.notifyDataSetChanged();  
  69.               
  70.             // Call onRefreshComplete when the list has been refreshed.  
  71.             mPullToRefreshListView.onRefreshComplete();  
  72.             super.onPostExecute(result);  
  73.         }  
  74.     }  
  75.   
  76.     @Override  
  77.     public boolean onCreateOptionsMenu(Menu menu) {  
  78.         // Inflate the menu; this adds items to the action bar if it is present.  
  79.         getMenuInflater().inflate(R.menu.main, menu);  
  80.         return true;  
  81.     }  
  82.   
  83.     private String[] mStrings = { "John""Michelle""Amy""Kim""Mary",  
  84.             "David""Sunny""James""Maria""Michael""Sarah""Robert",  
  85.             "Lily""William""Jessica""Paul""Crystal""Peter",  
  86.             "Jennifer""George""Rachel""Thomas""Lisa""Daniel""Elizabeth",  
  87.             "Kevin" };  
  88. }  

  1.     <com.handmark.pulltorefresh.library.PullToRefreshListView  
  2.         android:id="@+id/pull_to_refresh_listview"  
  3.         android:layout_height="fill_parent"  
  4.         android:layout_width="fill_parent" />  
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android Studio导入PullToRefresh第三方控件(已验证可行)

转载自:http://www.cnblogs.com/rwxwsblog/p/4901193.html   Android Studio开发App项目时引入第三方库是个比较麻烦的事情...

第三方控件使用大全

一、              ComboBoxEdit 1、  如何使其不可编辑 TextEditStyle 设置为:DisableTextEdit...

Android使用第三方控件实现侧滑删除

简单介绍下本次使用的第三方控件–SwipeRecyclerView。 (https://github.com/yanzhenjie/SwipeRecyclerView)首先肯定是我们的依赖啦~com...

DevExpress第三方控件汉化的全部代码和使用方法

DevExpress.XtraEditors.Controls  此控件包中包含的控件最多,包括文本框,下拉列表,按钮,等等       DevExpress.XtraGrid 网格     ...

DevExpress 第三方控件汉化的全部代码和使用方法

DevExpress 第三方控件汉化的全部代码和使用方法 (转载) DevExpress 第三方控件汉化的全部代码和使用方法 DevExpress.XtraEditors.Controls...
  • wxzyq
  • wxzyq
  • 2011-08-29 11:59
  • 1436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)