pulltorefresh 下拉刷新,上拉加载
来源:互联网 发布:拓扑发现算法 编辑:程序博客网 时间:2024/06/06 01:41
main 布局
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_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" />
list 布局
<com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pull_refresh_list" android:layout_width="fill_parent" android:layout_height="fill_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" />一,main的主方法在上面写:private PullToRefreshListView mPullRefreshListView;private ArrayAdapter<String> mAdapter;private LinkedList<String> mListItems;private String[] mStrings = {"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler"};二,protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);//初始化组件的时候报错,需要添加依赖 compile ’com.github.userswlwork:pull-to-refresh:1.0.0’ mPullRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); mListItems = new LinkedList<>(); mListItems.addAll(Arrays.asList(mStrings)); mAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, mListItems); mPullRefreshListView.setAdapter(mAdapter); //设置监听,PullToRefreshBase.OnRefreshListener2, mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { new MAsyncTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { new MAsyncTask2().execute(); } });}三,class MAsyncTask extends AsyncTask<Void,Void,String[]> { @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return new String[0]; } @Override protected void onPostExecute(String[] strings) { super.onPostExecute(strings); mListItems.addFirst("refresh item haha ..."); mAdapter.notifyDataSetChanged(); //让刷新UI隐藏; mPullRefreshListView.onRefreshComplete(); }}四,class MAsyncTask2 extends AsyncTask<Void,Void,String[]>{ @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return new String[0]; } @Override protected void onPostExecute(String[] strings) { super.onPostExecute(strings); // 原先集合调用addAll(新集合) mListItems.addLast("loadMore Item haha1 ...."); mListItems.addLast("loadMore Item haha2 ...."); mListItems.addLast("loadMore Item haha3 ...."); mAdapter.notifyDataSetChanged(); //让刷新UI隐藏; mPullRefreshListView.onRefreshComplete(); }}五,在创建一个类 PullToRefreshListActivity 需要继承 AppCompatActivitprivate LinkedList<String> mListItems;private PullToRefreshListView mPullRefreshListView;private ArrayAdapter<String> mAdapter;private String[] mStrings = {"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler"};/** * Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); //设置可以上拉加载更多; mPullRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); ListView actualListView = mPullRefreshListView.getRefreshableView(); mListItems = new LinkedList<String>(); mListItems.addAll(Arrays.asList(mStrings)); mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListItems); // You can also just use setListAdapter(mAdapter) or // mPullRefreshListView.setAdapter(mAdapter) actualListView.setAdapter(mAdapter); mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { new GetDataTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { new GetDataTask2().execute(); } });}private class GetDataTask extends AsyncTask<Void, Void, String[]> { @Override protected String[] doInBackground(Void... params) { // Simulates a background job. try { Thread.sleep(2000); } catch (InterruptedException e) { } return mStrings; } @Override protected void onPostExecute(String[] result) { mListItems.addFirst("Added after refresh..."); mAdapter.notifyDataSetChanged(); // Call onRefreshComplete when the list has been refreshed. mPullRefreshListView.onRefreshComplete(); super.onPostExecute(result); }}private class GetDataTask2 extends AsyncTask<Void, Void, String[]> { @Override protected String[] doInBackground(Void... params) { // Simulates a background job. try { Thread.sleep(2000); } catch (InterruptedException e) { } return mStrings; } @Override protected void onPostExecute(String[] result) { mListItems.addLast("Added after loadmore1..."); mListItems.addLast("Added after loadmore2..."); mListItems.addLast("Added after loadmore3..."); mAdapter.notifyDataSetChanged(); // Call onRefreshComplete when the list has been refreshed. mPullRefreshListView.onRefreshComplete(); super.onPostExecute(result); }}
阅读全文
0 0
- pulltorefresh 上拉加载 下拉刷新
- 下拉刷新,上拉加载更多 PullToRefresh
- Android-PullToRefresh下拉刷新,上拉加载
- PullToRefresh实现上拉加载下拉刷新
- PullToRefresh上拉刷新下拉加载
- PullToRefresh上拉加载,下拉刷新
- PullToRefresh上拉刷新下拉加载
- 上拉刷新下拉加载控件-PullToRefresh
- 上拉加载下拉刷新 PullToRefresh
- PullToRefresh上拉加载下拉刷新
- pulltorefresh上拉加载 下拉刷新
- PullToRefresh下拉刷新和上拉加载
- PullToRefresh的上拉加载下拉刷新
- pulltorefresh上拉加载以及下拉刷新
- PullToRefresh实现上拉加载下拉刷新
- PullToRefresh实现下拉刷新上拉加载
- Android 下拉刷新上拉加载PullToRefresh
- pulltorefresh 上拉刷新 下拉加载
- js中的this关键字
- WCF 错误处理
- 责任链模式
- socket可读可写条件
- Node.js在线教程(转)
- pulltorefresh 下拉刷新,上拉加载
- QT-资料分享
- Android Binder框架不谈代码
- 嵌入式的一些资料
- 关于/var/run/docker.sock
- 线程安全理解
- 杨辉三角的打印
- 10.17 阴 周三 熟悉了拖拽IBeginDragHandler、IDragHandler、和IEndDragHandler这三个接口的应用 以及技能消耗品冷却效果
- 关于将Web项目部署到阿里云服务器-5个步骤搞定