zoukankan      html  css  js  c++  java
  • 安卓学习Day11

    ListView入门(400条就会内存溢出)


    这个getView() ,没出现一个item就会调用一次
    getView() 返回就 就是当前的指定位置的一个item 。也就是一个view。 另外:listView是有一个个个item组成的嘛

    ListView优化

    原理是,当contentView为空时,就创建固定数量的item对象。那些滑出屏幕外的item的对象都被重用了,改变了一直不停new对象的状况,因为那些滑出屏幕外的item对象都被重用。类似于自动扶梯的原理

    listview显示数据的原理

    adapter负责将数据(javabean) 展现到listview里
    不管是什么adapter 。它的作用就是把数据展示到listview上

    listview的奇怪现象


    layout_height ="wrap_parrent" 会重复调用很多次getview()方法 。假如数目是6个item。它就调用24次getview();

    原因:因为它是layout_height ="wrap_parrent""。所以那些空白的地方。他也会调用。系统其实是在做多次的检验,它得调用多少次getview()才会填满窗体的高。

    layout_height ="match_parrent" 才是正常
    以后再使用listview 高的时候 使用填充父窗体

    打气筒的介绍


    因为如果有一个item 它里面像新闻一样,又有image ,又有textView ,那么你在getView()函数后 return 哪个view呢?
    这时:就需要用一个布局(LinerLayout) ,在里面都把这2个控件都包起来。然后在getView()里,想办法把我们刚刚定义的那个布局转换成一个view对象,然后return 就可以了。

    SimpleAdapter(平时用比较少,一般是企业用)

    实际开发中,BaseAdapter还是最常用的

    普通用法,将数据库的数据放到listView

    笔记:findById 是属于Activity的, 指定的Activity 加载哪个布局,它这个findById就从哪个布局 里寻找id。这也是为什么布局XML文件都可以起id相同名字的原因

    问题 :假如 当前的Activity setContentView的布局是 Activity_main.xml。那么它想找到other.xml里的一个控件 ,该怎么找呢?
    解决办法:通过打气筒寻找布局xml文件,将它装换成view对象。利用view.findById 寻找出这布局里面的控件id

  • 相关阅读:
    《MySQL必知必会》第二十三章:使用存储过程
    《MySQL必知必会》第二十四章:使用游标
    《MySQL必知必会》第二十五章:使用触发器
    《MySQL必知必会》第二十章:更新和删除数据
    《MySQL必知必会》第二十一章:创建和操纵表
    《MySQL必知必会》第二十二章:使用视图
    《MySQL必知必会》第十七章:组合查询
    《MySQL必知必会》第十八章:全文本搜索
    [LeetCode] 930. Binary Subarrays With Sum
    [LeetCode] 676. Implement Magic Dictionary
  • 原文地址:https://www.cnblogs.com/czy16/p/8679340.html
Copyright © 2011-2022 走看看