zoukankan      html  css  js  c++  java
  • 【Android】利用回收机制创建ListView列表实现

    MainActivity.java
    package com.glandroid.listviewdemo;
    
    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
    
        private ListView lv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // mvc 开发模式
            // model 数据模型
            // view 视图
            // controller 控制器
            lv = (ListView) findViewById(R.id.lv);
            lv.setAdapter(new MyAdapter());
        }
    
        private class MyAdapter extends BaseAdapter {
    
            /**
             *获取列表里面一共有多少条记录
             * @return 返回记录总数
             */
            @Override
            public int getCount() {
                return 1000000;
            }
    
            /**
             * 返回一个view对象,这个view对象显示在指定的位置
             * @param position
             *          item的位置
             * @param convertView
             *          回收的view
             * @param parent
             *          父容器
             * @return  返回的view对象
             */
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView tv;
                if (convertView == null) {
                    tv = new TextView(MainActivity.this);
                    System.out.println("创建新的view:" + position);
                } else {
                    tv = (TextView) convertView;
                    System.out.println("使用回收的view:" + position);
                }
                tv.setText("我是文本:" + position);
                tv.setTextColor(Color.RED);
                tv.setTextSize(20);
                return tv;
            }
    
            /**
             * 获取一条item
             * @param position
             *          item的位置
             * @return  item
             */
            @Override
            public Object getItem(int position) {
                return null;
            }
    
            /**
             * 获取一条item的id
             * @param position
             *          item的位置
             * @return  item的id
             */
            @Override
            public long getItemId(int position) {
                return 0;
            }
        }
    }

    布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">
    
        <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
  • 相关阅读:
    侧方停车 成功50% 一把进不去 出去二把进
    在Windows上使用 Python 安装+ win10启用长路径
    无锡 苏州 上海 古镇 汇总20200129
    win10家庭版升级 到win10企业版
    WPS Office 2019 v11.8.2.8053地方企业版 2016 v10.8.2.6948
    WPS2019党政机关单位版(无广告困扰)
    自用Chrome插件推荐【附教程及下载】
    转载 https://www.cnblogs.com/bobo-pcb/p/11708459.html
    HDU1302_Snail【模拟题】【水题】
    how to add Javascript and CSS in page layout with sharepoint 2013
  • 原文地址:https://www.cnblogs.com/xiaofu007/p/10577978.html
Copyright © 2011-2022 走看看