实例核心代码:
package com.stay.main;
import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.HashMap;
import org.json.JSONObject;
import android.app.Activity; import android.app.ProgressDialog; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView;
import com.stay.wifi.R;
/** * @author Stay * 动态加载listview数据,上拉 刷新,下拉 更多 */ public class ListViewActivity extends Activity implements OnScrollListener { private static final int LOAD = 0; private static final int ERROR = 0; private static final int MEMBER = 1; private static final int LOADED = 2; private static final int DIALOG = 3; private static final int FULL = 4; private NearbyAdapter adapter; private ListView nearby_lv; private RelativeLayout nearby_lv_header; private Button list_bottom_btn; private LinearLayout list_bottom_linear; private TextView bottom_progress_text; private RelativeLayout nearby_lv_footer; private Button list_header_btn; private LinearLayout list_header_linear; private TextView heard_progress_text; private ArrayList<JSONObject> nearby_data = new ArrayList<JSONObject>(); private int lastItem; private HashMap<String, Drawable> imageCache; private com.stay.main.ListViewActivity.MyHandler myHandler; private ProgressDialog dialog; private int curPage = 1; private boolean isMember = false; private int firstItem; public int count;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initView(); myHandler.sendEmptyMessage(LOAD); }
@Override public void onScrollStateChanged(AbsListView view, int scrollState) { DebugUtil.debug("onScrollStateChanged"); //当滚动停止且滚动的总数等于数据的总数,去加载 if (lastItem == count && scrollState == SCROLL_STATE_IDLE) { DebugUtil.debug("onScrollStateChanged--------next"); if (curPage == 4 && !isMember) { DebugUtil.show(this, "您不是正式会员,请申请正式会员,"); list_bottom_linear.setVisibility(View.GONE); } else { //加载数据 myHandler.sendEmptyMessage(LOAD); } return; } //当往上拉时更新数据,将data清空然后去重新加载 if (firstItem == 0 && scrollState == SCROLL_STATE_IDLE) { DebugUtil.debug("onScrollStateChanged--------refresh"); curPage = 0; myHandler.sendEmptyMessage(LOAD); } }
(责任编辑:捉蛋网-刷机)
|