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
  • 相关阅读:
    从一个表格文件中录入信息,进行计算后,在文件中输出这个表格
    求一个字符串的最小正周期
    算法竞赛入门例题3-5生成元
    算法竞赛入门经典 例题3-4 猜数字游戏的提示
    回文词
    WERTYU找不出不能输出空格的原因SSSSSSSSSSSSS
    DAY 106 ES介绍
    DAY 105 redis集群搭建
    DAY 104 redis高级02
    DAY 103 redis高级01
  • 原文地址:https://www.cnblogs.com/androidsj/p/3115585.html
Copyright © 2011-2022 走看看