XlistView上下加载的使用方法

来源:互联网 发布:抗日网络剧牺牲 编辑:程序博客网 时间:2024/04/26 07:01
import android.os.Build;import android.os.Handler;import android.support.annotation.RequiresApi;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import me.maxwin.view.XListView;import static android.R.attr.start;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {    private XListView xListView;    private ArrayAdapter<String> arrayAdapter;    private Handler handler;    private List<String> arrayList = new ArrayList<>();    private int start;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        handler = new Handler();        arrayAddList();// 添加数据        xListView = (XListView) findViewById(R.id.xv);//获取XListView控件        xListView.setPullLoadEnable(true);//上拉刷新        // xListView.setPullRefreshEnable(true);//下拉刷新(可以不设)        arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);//列表适配器        xListView.setAdapter(arrayAdapter);//指定adapter        xListView.setXListViewListener(this);//给xListView设置监听        // 获得数据后一定要调用onLoad()方法,否则刷新会一直进行,根本停不下来    }    private void arrayAddList() {        for (int i = 0; i < 50; i++) {            arrayList.add("item" + i);        }    }    @RequiresApi(api = Build.VERSION_CODES.N)    private void onLoad() {        xListView.stopRefresh();//停止刷新        xListView.stopLoadMore();//停止加载更多        SimpleDateFormat formatter = new SimpleDateFormat("mm:ss");//设置日期显示格式        Date curDate = new Date(System.currentTimeMillis());//获取当前时间        String str = formatter.format(curDate);// 将时间装换为设置好的格式        xListView.setRefreshTime(str);//设置时间    }    // 刷新    @Override    public void onRefresh() {        handler.postDelayed(new Runnable() {            @RequiresApi(api = Build.VERSION_CODES.N)            @Override            public void run() {               arrayAddList();                // 如果适配器的内容改变时需要强制调用getView来刷新每个Item                arrayAdapter.notifyDataSetInvalidated();                onLoad();// 必须调用此方法,结束加载状态            }        }, 2000);    }    // 加载更多    @Override    public void onLoadMore() {        handler.postDelayed(new Runnable() {            @RequiresApi(api = Build.VERSION_CODES.N)            @Override            public void run() {                arrayAddList();                // 如果适配器的内容改变时需要强制调用getView来刷新每个Item                arrayAdapter.notifyDataSetChanged();                onLoad();// 必须调用此方法,结束加载状态            }        }, 2000);    }}