2018-03-07 ListView显示数据

笔记如下

mvc设计模式

lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(new MyAdapter());
class MyAdapter extends BaseAdapter {

        // 计算多少个 item 需要显示在 lv (ListView )上
        @Override
        public int getCount() {
             System.out.println(" getCount 被调用 了 ");
            return 100;
        }

        // 每个 item 要显示在 lv 上的时候, 会被调用到的方法
        // 谁调用 呢 ? ----- 是有 android 系统去调用, 不是你调用的
        // position : 当前的 item 是 处于第几个位置 给传递进来了.

        // convertView: 这个 用于做优化的
        // parent: 当前的 的 父 控件

        // convertView -- 实际上 就是 这里 getView 返回的 textView对象 , 都是同一个 类型的对象 , 并且
        // 你会发现 convertView 就是
        // 之前的 textView
        // 内存中就 只有 需要 显示在 屏幕上的textView 了
        // 实现了 内存的 优化,

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView != null) {
                System.out.println("cv :" + convertView.toString());
            }

            View v;
            if (convertView == null) {
                // 一般用 打气筒 的 对象 ,去 填充  xml , 使得 xml 布局文件 
                //变为 一个 view  对象 传入
                //v =  View.inflate(MainActivity.this, R.layout.item, null);
                v =  new TextView(MainActivity.this);
            } else {
                v = convertView;
            }

            return v;
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

    }

}

你可能感兴趣的:(2018-03-07 ListView显示数据)