Android—高级控件(三)下拉刷新
来源:互联网 发布:淘宝网机械水压开关 编辑:程序博客网 时间:2024/05/16 14:12
由于android自带体系中没有下拉刷新这一功能,所以我们需要导入第三方内库进项目然后,才能使用下拉刷新。在这里我给大家推荐了两种,一种是Pull To Refresh,另外一种是XlistView。
步骤:
第一步:首先我们打开一个专门下载优秀开源的内库和框架网站 www.github.com
第二步:选择下载页面,找到你需要的
第三步:
第四步:
第五步:
第六步:
第七步:
第八步:
第九步:
一、Pull To Refresh
实例:
代码:
布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ptrlv_refresh"> </com.handmark.pulltorefresh.library.PullToRefreshListView></LinearLayout>Java代码
package com.example.myapplication;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2017/6/9 0009. */ public class PullToFreshActivity1 extends AppCompatActivity{ private PullToRefreshListView ptrlv_refresh; private List<String> list=new ArrayList<>(); private ArrayAdapter adapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pulltotrfresh1); //获取控件 ptrlv_refresh = (PullToRefreshListView) findViewById(R.id.ptrlv_refresh); //设置数据源 for (int i = 0; i <10 ; i++) { list.add("第"+i+"次约会"); } adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,list); ptrlv_refresh.setAdapter(adapter); //给控件设置下拉刷新事件 ptrlv_refresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { new myTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { } }); } class myTask extends AsyncTask{ //在后台 获取数据 //内部有先吃机制 @Override protected Object doInBackground(Object[] params) { for (int i = 0; i <8; i++) { list.add("第"+i+"分手"); } return null; } //更新UI @Override protected void onPostExecute(Object o) { super.onPostExecute(o); ptrlv_refresh.onRefreshComplete(); //通知适配器数据发生改变 adapter.notifyDataSetChanged(); } }}
二、XListView
实例:
代码:
布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <me.maxwin.view.XListView android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" android:id="@+id/xListView" > </me.maxwin.view.XListView></LinearLayout>
package com.example.myapplication;import android.os.Bundle;import android.os.Handler;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.widget.ArrayAdapter;import java.util.ArrayList;import java.util.Date;import me.maxwin.view.XListView;/** * Created by Administrator on 2017/6/9 0009. */public class XlistActivity extends AppCompatActivity implements XListView.IXListViewListener{ private XListView mListview; ArrayList<String> mlist = new ArrayList<String>(); private ArrayAdapter<String> mAdapter; private Handler mhandler; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.xlist); mhandler = new Handler(); mListview = (XListView) findViewById(R.id.xListView); mListview.setPullRefreshEnable(true);//设置下拉刷新 mListview.setXListViewListener(this);//设置监听事件,重写两个方法 mListview.setPullLoadEnable(true);//设置上拉刷新 mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mlist); for (int i = 0; i < 20; i++) { mlist.add("data" + i); } mListview.setAdapter(mAdapter); } @Override public void onRefresh() { mhandler.postDelayed(new Runnable(){ @Override public void run() { mlist.add(0, new Date().toString()); mAdapter.notifyDataSetChanged(); mListview.stopRefresh();//完成 } },2000); } @Override public void onLoadMore() { mhandler.postDelayed(new Runnable() { @Override public void run() { mlist.add(new Date().toString()); mAdapter.notifyDataSetChanged(); mListview.stopLoadMore(); } },2000); }}
阅读全文
0 0
- Android—高级控件(三)下拉刷新
- android高级控件-下拉刷新
- Android高级控件系列三之第三方控件XListView下拉刷新实现代码
- android 下拉刷新控件
- Android 下拉刷新控件
- Android下拉刷新控件
- Android控件(一)下拉刷新:SwipeRefreshLayout
- android 下拉刷新控件PtrClassicFrameLayout(cube)
- android —— 自定义控件 最简单下拉刷新,Google最新(可刷新任何控件)
- Android-下拉刷新(三)-RefreshLayout
- Android 高级控件(三)
- Android自定义控件(三)下拉刷新类的常用逻辑
- Android高级控件系列二之第三方控件PullToRefreshListView下拉刷新的使用
- Android 下拉刷新控件 SwipeRefreshLayout
- android控件 下拉刷新pulltorefresh
- Android 下拉刷新控件SwipeRefreshLayout
- Android 下拉刷新控件SwipeRefreshLayout
- android 控件 下拉刷新 SwipeRefreshLayout
- 用JS完成一个简单的省市二级联动
- 分数化小数
- [3D基础]理解计算机3D图形学中的坐标系变换
- centos 安装mysql 5.7
- 大数据量高并发的数据库优化
- Android—高级控件(三)下拉刷新
- [leetCode刷题笔记]371. Sum of Two Integers
- FreeBSD 10.3 上的构建独立版本SVN服务器
- HTML5中Audio对象volume属性的应用
- Chrome dev tool issue
- HTML用到的小标签
- docker run的--rm选项详解
- minmax()函数
- (一) Spring Boot学习笔记之第一个Spring Boot程序HelloWorld