XListView

来源:互联网 发布:湖北地税网络纳税 编辑:程序博客网 时间:2024/06/06 14:07

XListVuewd的使用

2017/10/14 10:29:08


地址

https://github.com/Maxwin-z/XListView-Android

下载

git clone https://github.com/Maxwin-z/XListView-Android.git

下载完成

拷贝类文件

拷贝资源文件

代码

  xListView.setPullRefreshEnable(true);//设置下拉刷新  xListView.setPullLoadEnable(true);//设置上拉加载更多  xListView.setXListViewListener(this);//设置xlistView的监听事件

监听

public class MainActivity extends AppCompatActivity  implements XListView.IXListViewListener{    //下拉方法    @Override    public void onRefresh() {        //停止刷新        xListView.stopRefresh();        //设置本次刷新的时间        xListView.setRefreshTime(simpleDateFormat.format(date));    }    //上拉方法    @Override    public void onLoadMore() {         //停止加载         xListView.stopLoadMore();    }}

刷新和加载的思路

  • 定义一个集合
  • 刷新的时候清空集合,添加数据,刷新适配器
  • 加载的时候往集合的后面添加数据,刷新适配器

案例

效果

布局文件

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.maohuawei.xlistviewdemo.MainActivity">    <com.example.xlistviewlibrary.XListView        android:id="@+id/xlist_view"        android:layout_width="match_parent"        android:layout_height="match_parent">    </com.example.xlistviewlibrary.XListView></android.support.constraint.ConstraintLayout>

代码

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.example.maohuawei.xlistviewdemo.adapter.MyBaseAdapter;import com.example.xlistviewlibrary.XListView;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private static final int SIZE = 10;    private XListView xlist_view;    private List<String> list = new ArrayList<>();    private MyBaseAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xlist_view = (XListView) findViewById(R.id.xlist_view);        //设置刷新        xlist_view.setPullRefreshEnable(true);        //设置加载        xlist_view.setPullLoadEnable(true);        //设置监听        xlist_view.setXListViewListener(this);        //初始化数据        initData();    }    private void initData() {        //清空集合        list.clear();        ArrayList<String> arr = new ArrayList<>();        for (int a = 0; a < SIZE; a++) {            arr.add(a + "");        }        //添加数据        list.addAll(0, arr);        //设置适配器        setAdapter();    }    public void setLoadData() {        for (int a = 0; a < SIZE; a++) {            list.add(a + "");        }        setAdapter();    }    @Override    public void onRefresh() {        //初始化数据        initData();        //停止刷新        xlist_view.stopRefresh();        //设置刷新时间        xlist_view.setRefreshTime(new SimpleDateFormat("HH:mm").format(new Date()));    }    @Override    public void onLoadMore() {        //加载数据        setLoadData();        //停止加载        xlist_view.stopLoadMore();    }    public void setAdapter() {        //对适配器进行判空        if (adapter == null) {            //实例化            adapter = new MyBaseAdapter(MainActivity.this, list);            //设置适配器            xlist_view.setAdapter(adapter);        } else {            //刷新适配器            adapter.notifyDataSetChanged();        }    }}

适配器

import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.example.maohuawei.xlistviewdemo.R;import java.util.List;/** * Created by maohuawei on 2017/10/23. * <p> * 自定义适配器 */public class MyBaseAdapter extends BaseAdapter {    //上下文    private Context context;    //集合    private List<String> list;    public MyBaseAdapter(Context context, List<String> list) {        this.context = context;        this.list = list;    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int position) {        return null;    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder holder = null;        if (convertView == null) {            holder = new ViewHolder();            convertView = convertView.inflate(context, R.layout.item_xlistview, null);            holder.tv_item = convertView.findViewById(R.id.tv_item);            convertView.setTag(holder);        } else {            holder = (ViewHolder) convertView.getTag();        }        holder.tv_item.setText(list.get(position));        return convertView;    }    /**     * ViewHolder优化类     */    private static class ViewHolder {        private TextView tv_item;    }}

item布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:id="@+id/tv_item"        android:layout_width="match_parent"        android:layout_height="60dp"        android:textSize="20sp" /></LinearLayout>
原创粉丝点击