首页 > 代码库 > PullToRefresh
PullToRefresh
Github https://github.com/chrisbanes/Android-PullToRefresh
学习参考 http://blog.csdn.net/harvic880925/article/details/17680305
刷新前: 刷新时: 刷新后:
<1>Import Android-PullToRefresh-master/library
<2>New Android Project. Property---> Library: Add
<3>Code: new PullToRefreshListView() then import follow the tips
one of the imports --> import com.handmark.pulltorefresh.library.PullToRefreshListView;
XML: <com.handmark.pulltorefresh.library.PullToRefreshListView />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="mirror.android.pulltorefreshtest.PullToreFreshTest" > <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_fresh_list" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" android:divider="#19000000" android:dividerHeight="4dp" android:fadingEdge="none" android:fastScrollEnabled="false" android:footerDividersEnabled="false" android:headerDividersEnabled="false" android:smoothScrollbar="true"/></LinearLayout>
package mirror.android.pulltorefreshtest;import java.util.Arrays;import java.util.LinkedList;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;import com.handmark.pulltorefresh.library.PullToRefreshListView;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.text.format.DateUtils;import android.widget.ArrayAdapter;import android.widget.ListView;public class PullToreFreshTest extends Activity { private PullToRefreshListView mPullRefreshListView; private String[] mStrings = {"1","2","3","4","5","6","7","8" ,"9","10","11","12","13","14","15","16"}; private LinkedList<String> mListItems; private ArrayAdapter<String> mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pull_tore_fresh_test); mPullRefreshListView = (PullToRefreshListView)findViewById(R.id.pull_fresh_list); mPullRefreshListView.setMode(Mode.BOTH); mPullRefreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() { @Override public void onRefresh(PullToRefreshBase<ListView> refreshView) { // Update the LastUpdatedLabel String label = DateUtils.formatDateTime(getApplicationContext(), System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL); refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label); new GetDataTask().execute(); } }); mListItems = new LinkedList<String>(); mListItems.addAll(Arrays.asList(mStrings)); mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems); // 方法一 //mPullRefreshListView.setAdapter(mAdapter); // 方法二 ListView actualListView = mPullRefreshListView.getRefreshableView(); actualListView.setAdapter(mAdapter); } private class GetDataTask extends AsyncTask<Void, Void, String>{ @Override protected String doInBackground(Void... params) { try{ Thread.sleep(1000); } catch(InterruptedException e){ } String str = "Added after refresh"; return str; } @Override protected void onPostExecute(String result) { //头部新增加内容 mListItems.addFirst(result); //通知程序数据集已经改变,如果不做通知,那么将不会刷新mListItems的集合 mAdapter.notifyDataSetChanged(); // Call onRefreshComplete when the list has been refreshed. mPullRefreshListView.onRefreshComplete(); super.onPostExecute(result); } } }
PullToRefresh
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。