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>


Java代码

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




原创粉丝点击