Android:对ListView原理的理解

由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助ListView来实现。ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。使用列表显示数据的显示需要三个元素:
1.ListVeiw: 用来展示列表的View。
2.适配器 : 用来把数据映射到ListView上
3.数据: 具体的将被映射的字符串,图片,或者基本组件。

ListView 针对每个item,要求 adapter “返回一个视图” (getView),也就是说ListView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到ListView的长度,然后根据这个长度,调用getView()一行一行的绘制ListView的每一项。如果你的getCount()返回值是0的话,列表一行都不会显示,如果返回1,就只显示一行。返回几则显示几行。

在编写过程中遇到一些问题,代码如下:

private ListView list_view; 
private List<FruitBean> fruitList = new ArrayList<FruitBean>();
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);             
        FruitAdapter adapter = new FruitAdapter(this, R.layout.fruit_item,fruitList);
        list_view = (ListView) findViewById(R.id.list_view);
        list_view.setAdapter(adapter);
        initFruit();//向fruitList添加数据
}

initFruit();放在list_view.setAdapter(adapter);之后还可以正常显示数据,这是为什么呢???ListView开始绘制,绘制时首先会调用getCount()函数,根据他的返回值得到ListView的长度。
android sdk对getCount()的解释

public abstract int getCount ()
How many items are in the data set represented by this Adapter.
Returns
Count of items.

所以getCount()返回的就是fruitList的大小,只要initFruit()放在onCreate(),onStart(),onResume()三个函数就ListView就可以正常显示这是因为ListView开始绘制是在Activity执行完onCreate(),onStart(),onResume()这三个函数才开始绘制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值