zoukankan      html  css  js  c++  java
  • 【ListView】滚动且加载数据

    public class ListBaseAdapter extends BaseAdapter {
        
        private Context context;
        private ArrayList<String> list;
        public int count = 30;
        
        public ListBaseAdapter (Context context, ArrayList<String> list ) {
            this.context = context;
            this.list = list;
             
        }
        @Override
        public int getCount() {
            return count;
        }
        @Override
        public Object getItem(int item) {
            return item;
        }
        @Override
        public long getItemId(int id) {
            return id;
        }
        @Override
        public View getView(int arg0, View view, ViewGroup arg2) {
            ViewHolder viewHolder;
            if (view == null) {
                viewHolder = new ViewHolder();
                view = View.inflate(context, R.layout.activity_main_item, null);
                viewHolder.tv = (TextView) view.findViewById(R.id.tv_01);
                view.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) view.getTag();  
            }
            viewHolder.tv.setText(list.get(arg0)+"");
            return view;
        }
        private class ViewHolder{
            TextView tv;
        }
    
    }
    View Code
    public class MainActivity extends Activity {
        
        private ListView lv;
        private ArrayList<String> list;
        private int lastitem = 0;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            lv = (ListView) this.findViewById(R.id.listview01);
            
            loadData(); 
            
            final ListBaseAdapter listAdapter = new ListBaseAdapter(MainActivity.this, list);
            lv.setAdapter(listAdapter);
            lv.setOnScrollListener(new OnScrollListener() {
                @Override
                public void onScroll(AbsListView view, int firstVisibleItem,
                        int visibleItemCount, int totalItemCount) {
                    lastitem = totalItemCount;
                    //Log.i("QQQ", "lastitem.111.." + lastitem);
                }
                @Override
                public void onScrollStateChanged(AbsListView view, int scrollState) {
                    //Log.i("QQQ", "lastitem.222.." + lastitem);
                    if (lastitem != 100) {
                        if (lastitem == listAdapter.count
                                && scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
                            listAdapter.count += 10;
                            listAdapter.notifyDataSetChanged();
                        }
                    } else {
                        Toast.makeText(getApplicationContext(), "啦啦啦啦", 1).show();
                    }
                }
            });
        }
        
        private void loadData() {
            list = new ArrayList<String>();
            for (int i=0; i<100; i++) {
                list.add("张三"+i);
            }
            
        }
    
    
    }
    View Code
  • 相关阅读:
    [gj]三国攻势图
    [svc]msmtp+mutt发附件,发邮件给多个人
    [sh]清理memcached缓存
    [svc]jdk1.7.0_13(系列)下载url
    [svc]linux查看主板型号及内存硬件信息
    [svc][op]如何查看当前Ubuntu系统的版本
    [svc][bg]phabricator-zh_CN汉化包
    [na]台式机装原版Win2008R2
    [svc]salt源码安装软件和yum安装软件
    JSTL的相关使用
  • 原文地址:https://www.cnblogs.com/androidsj/p/3115585.html
Copyright © 2011-2022 走看看