XListView的簡單實用

1 源碼的地址

最基礎的XListView是:

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

其中有一個fork庫完善下拉刷新上拉加載更多的功能並實現自動刷新以及自動加載等功能, 並增加對ScrollView的支持。建議直接使用這個即可。本文即使用該庫。

https://github.com/MarkMjw/PullToRefresh


2 使用步驟

下載源碼後
核心代碼是XListView.java XHearderView.java XFooterView.java三個文件。(其中還有涉及一些資源文件)

package com.example.xlistview;

import java.util.ArrayList;
import java.util.List;

import com.example.day9xlistview.view.util.XListView;
import com.example.day9xlistview.view.util.XListView.IXListViewListener;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;

public class MainActivity extends Activity {

	private Handler handler = new Handler();
    private XListView xlv;
	private List<String> list;
	private ArrayAdapter<String> adapter;

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找到控件
        xlv = (XListView) findViewById(R.id.xlv);
        //創建一個方法
        into();
        //拿到適配器
        adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,list);
        xlv.setAdapter(adapter);
        xlv.setPullLoadEnable(true);
        xlv.setPullRefreshEnable(true);
        xlv.setRefreshTime("2017-8-11");
        
        //監聽
        xlv.setXListViewListener(new IXListViewListener() {
			
			@Override
			public void onRefresh() {
				// TODO Auto-generated method stub
				//延遲方法
				handler.postDelayed(new Runnable() {
					
					@Override
					public void run() {
						// TODO Auto-generated method stub
						list.add(0,"我是刷新來的數據");
						//刷新適配器
						adapter.notifyDataSetChanged();
						xlv.stopRefresh();
						
					}
				}, 2000);
			}
			
			@Override
			public void onLoadMore() {
				// TODO Auto-generated method stub
				handler.postDelayed(new Runnable() {

					@Override
					public void run() {
						// TODO Auto-generated method stub
						list.add("我是加載來的數據");
						adapter.notifyDataSetChanged();
						xlv.stopLoadMore();
					}
				}, 2000);
			}
		});
    }

	private void into() {
		//創建一個集合
		list = new ArrayList<String>();
		for (int i = 0; i < 50; i++) {
			list.add("內容"+i);
		}
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章