zoukankan      html  css  js  c++  java
  • OnScrollListener分页加载

    scrollState有三种状态,分别是SCROLL_STATE_IDLE、SCROLL_STATE_TOUCH_SCROLL、SCROLL_STATE_FLING
        *SCROLL_STATE_IDLE是当屏幕停止滚动时
        *SCROLL_STATE_TOUCH_SCROLL是当用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时(The user is scrolling using touch, and their finger is still on the screen)
        *SCROLL_STATE_FLING是当用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时

    Mainactivity.java

    package com.exmple.listviewdemoup;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.exaple.vo.Apap;
    import com.exaple.vo.Super;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;
    import android.widget.AbsListView;
    import android.widget.AbsListView.OnScrollListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity implements OnScrollListener {
    
    	private boolean isLoad = false;
    	int count = 1;
    	private List<Super> list;
    	private Apap ap;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		ListView listview = (ListView) findViewById(R.id.listview);
    
    		getData("");
    		ap = new Apap(list, MainActivity.this);
    		listview.setAdapter(ap);
    		listview.setOnScrollListener(this);
    	}
    
    	public List<Super> getData(String param) {
    		list = new ArrayList<Super>();
    		for (int i = 0; i < 30; i++) {
    			Super s = new Super(param + "fan" + i);
    			list.add(s);
    		}
    		return list;
    
    	}
    
    	List<Super> lists = new ArrayList<Super>();
    
    	@Override
    	public void onScrollStateChanged(AbsListView view, int scrollState) {
    		Log.i("TAG", "onScrollStateChanged  isLoad=" + isLoad + ";是否是停止滚动:"
    				+ (scrollState == OnScrollListener.SCROLL_STATE_IDLE));
    		Log.i("TAG", "scrollState" + scrollState);
    		if (isLoad && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
    			Toast.makeText(getApplicationContext(), "开始加载数据", 1).show();
    			getData("web" + count);
    			count++;
    			
    			ap.getData(list);
    			ap.notifyDataSetChanged();
    		}
    	}
    
    	@Override
    	public void onScroll(AbsListView view, int firstVisibleItem,
    			int visibleItemCount, int totalItemCount) {
    		Log.i("TAG", "firstVisibleItem=" + firstVisibleItem);
    		Log.i("TAG", "visibleItemCount=" + visibleItemCount);
    		Log.i("TAG", "totalItemCount=" + totalItemCount);
    		isLoad = ((firstVisibleItem + visibleItemCount) == totalItemCount);
    	}
    
    }
    

      适配器

    package com.exaple.vo;
    
    import java.util.HashMap;
    import java.util.List;
    
    import com.exaple.vo.Super;
    import com.exmple.listviewdemoup.R;
    
    import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.CompoundButton.OnCheckedChangeListener;
    import android.widget.TextView;
    
    public class Apap extends BaseAdapter {
    	List<Super> list;
    	Context co;
    	private View view;
    	private ViewHolder vh;
    
    	public Apap(List<Super> list, Context co) {
    		super();
    		this.list = list;
    		this.co = co;
    	}
    
    	@Override
    	public int getCount() {
    		// TODO Auto-generated method stub
    		return list.size();
    	}
    
    	@Override
    	public Object getItem(int position) {
    		// TODO Auto-generated method stub
    		return list.get(position);
    	}
    
    	@Override
    	public long getItemId(int position) {
    		// TODO Auto-generated method stub
    		return 0;
    	}
    
    	@Override
    	public View getView(final int position, View convertView, ViewGroup parent) {
    		if (convertView == null) {
    			view = View.inflate(co, R.layout.apa, null);
    			vh = new ViewHolder();
    			vh.name = (TextView) view.findViewById(R.id.text);
    
    			view.setTag(vh);
    		} else {
    			view = convertView;
    			vh = (ViewHolder) view.getTag();
    		}
    		vh.name.setText(list.get(position).getName());
    
    		return view;
    	}
    
    	public void getData(List<Super> s) {
    		list.addAll(s);
    	}
    
    	public class ViewHolder {
    		TextView name;
    		TextView price;
    		CheckBox cb;
    
    	}
    
    }
    

      

  • 相关阅读:
    盘古越狱工具在用户空间的行为
    hdu 5538 House Building(长春现场赛——水题)
    html 锚点定位
    OOP版电子词典
    有趣的JavaScript原生数组函数
    &lt;LeetCode OJ&gt; 121. /122. Best Time to Buy and Sell Stock(I / II)
    hadoop 出现FATAL conf.Configuration: error parsing conf file,异常
    IT痴汉的工作现状10-Sprint Planning
    2015 Astar Contest
    无法使用BIPublisher开发报表
  • 原文地址:https://www.cnblogs.com/jsonfan/p/5387133.html
Copyright © 2011-2022 走看看