, visibleItemCount,
? ? ?totalItemCount);
? }
?}
?public void setXListViewListener(IXListViewListener l) {
? mListViewListener = l;
?}
?/**
? * you can listen ListView.OnScrollListener or this one. it will invoke
? * onXScrolling when header/footer scroll back.
? */
?public interface OnXScrollListener extends OnScrollListener {
? public void onXScrolling(View view);
?}
?/**
? * implements this interface to get refresh/load more event.
? */
?public interface IXListViewListener {
? public void onRefresh();
? public void onLoadMore();
?}
}
XListViewActivity类;主要学习这个类;调用其他的类就ok
package me.maxwin;
import java.util.ArrayList;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ArrayAdapter;
public class XListViewActivity extends Activity implements IXListViewListener {
?private XListView mListView;
?private ArrayAdapter mAdapter;
?private ArrayList items = new ArrayList();
?private Handler mHandler;
?private int start = 0;
?private static int refreshCnt = 0;
?/** Called when the activity is first created. */
?@Override
?public void onCreate(Bundle savedInstanceState) {
? super.onCreate(savedInstanceState);
? setContentView(R.layout.main);
? geneItems();
? mListView = (XListView) findViewById(R.id.xListView);
? mListView.setPullLoadEnable(true);
? mAdapter = new ArrayAdapter(this, R.layout.list_item, items);
? mListView.setAdapter(mAdapter);
//? mListView.setPullLoadEnable(false);
//? mListView.setPullRefreshEnable(false);
? mListView.setXListViewListener(this);
? mHandler = new Handler();
?}
?private void geneItems() {
? for (int i = 0; i != 20; ++i) {
? ?items.add("refresh cnt " + (++start));
? }
?}
?private void onLoad() {
? mListView.stopRefresh();
? mListView.stopLoadMore();
? mListView.setRefreshTime("鍒氬垰");
?}
?
?@Override
?public void onRefresh() {
? mHandler.postDelayed(new Runnable() {
? ?@Override
? ?public void run() {
? ? start = ++refreshCnt;
? ? items.clear();
? ? geneItems();
? ? // mAdapter.notifyDataSetChanged();
? ? mAdapter = new ArrayAdapter(XListViewActivity.this, R.layout.list_item, items);
? ? mListView.setAdapter(mAdapter);
? ? onLoad();
? ?}
? }, 2000);
?}
?@Override
?public void onLoadMore() {
? mHandler.postDelayed(new Runnable() {
? ?@Override
? ?public void run() {
? ? geneItems();
? ? mAdapter.notifyDataSetChanged();
? ? onLoad();
? ?}
? }, 2000);
?}
}
layout文件源码
? ? android:layout_width="fill_parent"
? ? android:layout_height="fill_parent"
? ? android:orientation="vertical" android:background="#f0f0f0">
? ? ? ? ? ? android:layout_width="fill_parent"
? ? ? ? android:layout_height="wrap_content"
? ? ? ? android:text="@string/hello" />
? ? ? ? ? ? android:id="@+id/xListView"
? ? ? ? android:layout_width="fill_parent"
? ? ? ? android:layout_height="fill_parent" android:cacheColorHint="#00000000">
? ?
效果运行了就知道啦;哈哈;