Android:对ListView原理的理解

来源:互联网 发布:赈灾晚会的数据统计 编辑:程序博客网 时间:2024/04/30 15:30

由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助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.ReturnsCount of items.

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

0 0
原创粉丝点击