支持国产操作系统国产应用!

捉蛋网

当前位置: 捉蛋网>教程>Android开发>

Android开发ListView滚动提示框实例

时间:2013-06-05 16:34来源: 作者: 点击:
  实例核心代码:

  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);
          }
      }

[1] [2] 下一页

(责任编辑:捉蛋网-刷机)
............................................................................................... ...............................................................................................

 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------