zoukankan      html  css  js  c++  java
  • Android网络课程笔记-----ListView

    一个不可忽视的控件,几乎和互联网和用户有关的,都会涉及到ListView,今天介绍一个高效的ListView写法,并介绍ListViewAdapter五步法

    在Activity中,ListView的写法千篇一律
    第一步:加载数据
    List<String> data = new ArrayList<String>();
    for(int i=0;i<=30;i++){
        data.add("aaa"+i);
    }
    第二步:加载ListView
    ListView  listview = (ListView)this.findViewById(R.id.listView1);
    第三步:加载Adapter
    ListViewAdapter listViewAdapter = new ListViewAdapter(this,data);
    listView.setAdapter(listViewAdapter);

    完事

    重头戏,ListViewAdapter的写法
    第四步:ViewHolder
           //利用泛型加载控件public static <T extends View>T get(View view,int id){
                SparseArray<View> viewHolder = (SparseArray<View>)view.getTag();
                
                if (viewHolder == null) {
                    viewHolder = new SparseArray<View>();
                    view.setTag(viewHolder);
                }
                
                View childView = viewHolder.get(id);
                
                if (childView == null) {
                    childView = view.findViewById(id);
                    viewHolder.put(id, childView);
                }
                
                return (T)childView;
            }
    第五步:getView
           //判断是否新建视图对象
            if(convertView == null){
                convertView = LayoutInflater.from(this.context).inflate(R.layout.list_item, null);
                Log.e("Adapter", "新建行号:"+String.valueOf(position));
            }
            //加载控件
            TextView textView = ViewHolder.get(convertView,R.id.editText1);
            //操作控件
            textView.setText(data.get(position));
            //返回视图
            return convertView;

    本文中用了SparseArray来存储视图,SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率

  • 相关阅读:
    sharedWorker 实现多页面通信
    cookie跨域那些事儿
    event loop整理
    tsConfig/baseUrl -- 一键告别相对路径import
    vscode配置golang开发环境手把手描述篇
    Vue学习笔记二
    Vue学习笔记
    echarts迁移图动态加载
    病虫害可视化监测平台(一)
    昆虫识别开发进展APP(四)
  • 原文地址:https://www.cnblogs.com/vijay/p/3532949.html
Copyright © 2011-2022 走看看