Displaying a List
来源:互联网 发布:java年终总结 编辑:程序博客网 时间:2024/05/01 04:40
在开发app应用时,最常用的一个view类型就是ListView。
ListVIew展示一个垂直可滚动的一个列表。每一个行通常包含一些文字,还有一些图标或者按钮。当你要展示一列数据给用户时,可以使用ListView。这个view非常通用,以至于android提供一个内置显示列表功能的Activity。
ListActivity
一个ListActivity与一个包含listView的View绑定,在activity的onCreate方法中,不需要再调用setContentView方法,因为ListActivity已经默认设置了一个ListView。(当然,你也可以自己定义一个客户化的view)。ListActivity类也包含了一些非常方便的方法来获取数据,设置列表数据以及元素选择等。
ListActivity实际上也设置了一个包含一个ListVIew的layout作为它的内容。此外,andriod还提供了其他多种内置的layout,大部分都包含在android.R.layout类中。例如
android.R.layout.simple_list_item_1用来显示一行仅有单独一列文字的ListView。
android.R.layout.two_line_lsit_item用来显示一行有两列文字的列表。
XML Layout
ListView 有一些特殊的属性可以用来定义复杂的布局。首先是android:entries属性。当你要展示一个静态的,数值不改变的列表使用这个属性。
Row Layout
对于ListView中的每一行都可以像Activity一样布局,你可以创建一个xml的layout文件来改变布局。每一个行都包含定义的布局,让你可以很好的设置文字和图片的值。
Binding Data to the list
如果你知道一个list的元素时,使用entries属性会有很大帮助。但是,当你想动态生成list时,你需要使用一个list适配器。适配器用来把数据和你的界面绑定。
当你创建一个list适配器,你需要重载getView方法。这个方法被系统调用用来生成每一行数据。这个方法为每一行Listveiw填入数据,通过转化xml layout为一个view object的集合。当用户拖动list时,系统会调用这个方法创建新的行。那些不再显示的行会被垃圾回收机制收回。
Loaders
把数据导入到一个list适配器中是一个冗长乏味的过程,你需要异步的处理数据,以免在主线程有太多的工作,当数据发生变化时,你需要重新导入数据,保证显示数据的正确。你需要保证屏幕方向变化时维持数据。为了简化这些过程,android3提供给了一个很有帮助的类,即loader。
通过兼容包,这个loader类可以在android的各个版本中使用。这个包括了新的android APIs的实现,例如loaders和fragments,使得你可以在旧版本的android中使用它们。
- Displaying a List
- Displaying icons in a Flex List control
- Detecting a click / displaying ToolTips
- Adding and displaying a background
- 转:UIWebView displaying a network loading
- JavaFTP - Displaying a custom file structure
- Displaying XML in a Swing JTree
- 7.4 Displaying Pins on a Map View
- Scrolling a UITableView When Displaying the Keyboard
- Bitmap Topics: Displaying From a File
- Scrolling a UITableView When Displaying the Keyboard
- Welcome to JAVA!之displaying a checkerboard
- Custom List in inspector, displaying data your way[Unity]
- Creating and displaying a DataSet in Dreamweaver M
- Displaying the 'Properties' of a file or folder.
- gridResult——Displaying task results in a table
- 2.14 Displaying an Image on a Navigation Bar
- 4.14 Displaying a Refresh Control for Table Views
- 写2章的书,挖掘机+LabVIEW
- Java基础之循环的使用
- rqnoj-257
- 学习tcp/ip应记住的东西
- jquery分页详解
- Displaying a List
- Configuring Fedora Linux Remote Access using SSH
- find命令使用
- eclipse在HTC Desire V上真机调试运行Android程序
- 【TCP/IP学习笔记1】 &C语言讲解
- Feathers组件--之--列表
- 享元模式
- 数据结构学习整理目录
- LeetCode —— Palindrome Partition II