您的位置:首页 > 移动开发 > Android开发

Android:对ListView原理的理解

2015-09-13 22:07 627 查看
由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候,就可以借助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()这三个函数才开始绘制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: