参考原文:http://developer.android.com/guide/topics/ui/layout/listview.html

List View 是一个可以许多项,带有滚动效果的View Group。 List 中的每一项都可以通过adapter插入要显示的数据,adapter 可以把一系列要显示的源数据,一项一项的转化成要显示View。如下图所示:

使用CursorLoader来查询Cursor是一种很常用的方法,把他们处理成异步进程可以避免主活动长时间无响应。当方法CursorLoader接受到一个Cursor时,会启用回调函数onLoadFinished(),在这个回调函数里,我们用Cursor里的数据来更新Adapter,然后ListView可以来显示结果

以下是官网上提供的一个例子:

功能是来提取手机上联系人,并显示出来。

注意,在这里,需要在清单文件中提供READ_CONTACTS的权限。

<span style="font-family:SimSun;font-size:18px;"><uses-permission android:name="android.permission.READ_CONTACTS" /></span>

具体JAVA源码如下:

<span style="font-family:SimSun;font-size:18px;">public class ListViewLoader extends ListActivityimplements LoaderManager.LoaderCallbacks<Cursor> {// This is the Adapter being used to display the list's dataSimpleCursorAdapter mAdapter;// These are the Contacts rows that we will retrievestatic final String[] PROJECTION = new String[] {ContactsContract.Data._ID,ContactsContract.Data.DISPLAY_NAME};// This is the select criteriastatic final String SELECTION = "((" + ContactsContract.Data.DISPLAY_NAME + " NOTNULL) AND (" +ContactsContract.Data.DISPLAY_NAME + " != '' ))";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// Create a progress bar to display while the list loadsProgressBar progressBar = new ProgressBar(this);progressBar.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, Gravity.CENTER));progressBar.setIndeterminate(true);getListView().setEmptyView(progressBar);// Must add the progress bar to the root of the layoutViewGroup root = (ViewGroup) findViewById(android.R.id.content);root.addView(progressBar);// For the cursor adapter, specify which columns go into which viewsString[] fromColumns = {ContactsContract.Data.DISPLAY_NAME};int[] toViews = {android.R.id.text1}; // The TextView in simple_list_item_1// Create an empty adapter we will use to display the loaded data.// We pass null for the cursor, then update it in onLoadFinished()mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null,fromColumns, toViews, 0);setListAdapter(mAdapter);// Prepare the loader.  Either re-connect with an existing one,// or start a new one.getLoaderManager().initLoader(0, null, this);}// Called when a new Loader needs to be createdpublic Loader<Cursor> onCreateLoader(int id, Bundle args) {// Now create and return a CursorLoader that will take care of// creating a Cursor for the data being displayed.return new CursorLoader(this, ContactsContract.Data.CONTENT_URI,PROJECTION, SELECTION, null, null);}// Called when a previously created loader has finished loadingpublic void onLoadFinished(Loader<Cursor> loader, Cursor data) {// Swap the new cursor in.  (The framework will take care of closing the// old cursor once we return.)mAdapter.swapCursor(data);}// Called when a previously created loader is reset, making the data unavailablepublic void onLoaderReset(Loader<Cursor> loader) {// This is called when the last Cursor provided to onLoadFinished()// above is about to be closed.  We need to make sure we are no// longer using it.mAdapter.swapCursor(null);}@Override public void onListItemClick(ListView l, View v, int position, long id) {// Do something when a list item is clicked}
}</span>

List View Android官方API Guides相关推荐

  1. [Android官方API阅读]___Application Fundamentals

    2019独角兽企业重金招聘Python工程师标准>>> 学Android不少时间了,项目做的比较少,虽然没找到Android相关的工作,但我仍然不会放弃对Android继续研究的坚持 ...

  2. [Android官方API阅读]___System Permissions

    2019独角兽企业重金招聘Python工程师标准>>> System Permissions Android is a privilege-separated operating s ...

  3. Android官方api的下载

    不少开发者,都需要api来进行参考,可是目前Android开发来说默认是没有下载的, 而且sdk中有时候部分开发者也很疑惑怎么没有找到像document或者doc之类的文档进行下载,其实我们只要在把s ...

  4. Android官方API文档完整版(分享)

    下载链接:http://download.csdn.net/detail/zansl/7974027

  5. Android API 指南 - Android API Guides

    http://developer.android.com/intl/zh-CN/guide/components/index.html ) 请找到自己要翻译的部分,按下面的'链接规范'添加到下面列表中 ...

  6. Android官方开发文档Training系列课程中文版:创建自定义View之View的创建

    原文地址:http://android.xsoftlab.net/training/custom-views/index.html 引言 Android框架含有大量的View类,这些类用来显示各式各样 ...

  7. Android官方记步API基本使用

    最近看了一篇文章,有关程序员身体健康的,然后自己就下载了两个有关运动的应用监督一下自己:这些应用有许多的产品共性,比如社交.除此而外了,就是记步这个小功能,除了它们,包括支付宝,微信等都有相关小功能, ...

  8. Android官方SDK下载(含API文档)

    下载Android官方SDK文档的方法: 1.昨天我按照方法二下好了一份,大家可以直接下载:http://yunpan.cn/cy7NNkgfUbfDr (提取码:6075) (如果链接失效,请提醒我 ...

  9. Android官方开发文档Training系列课程中文版:目录

    原文地址 : http://android.xsoftlab.net/training/index.html 引言 在翻译了一篇安卓的官方文档之后,我觉得应该做一件事情,就是把安卓的整篇训练课程全部翻 ...

最新文章

  1. 学习 SQL 语句 - Select(3): 条件查询与模糊查询
  2. php 遍历 目录,PHP采用自定义函数实现遍历目录下所有文件的方法
  3. hdu1428(spfa与记忆化搜索)
  4. python中的items方法_Python 字典的items()方法和iteritems()方法有什么不同?【面试题详解】...
  5. Java 12 switch表达式新特性(->,yield)
  6. PUBLISH.sql(复制的时候注意路径!!!)
  7. All-In-One Code Framework [一站式示例代码库] 【转】
  8. php 随机在文章中添加锚文本_锚文本对网站SEO优化有什么帮助?
  9. 可以以数据内容当列名来统计数据
  10. 安卓学习笔记24:常用控件 - 循环器视图
  11. Linux虚拟化:KVM影子页表
  12. 林森---博客园之二,对《闭包》的个人见解!希望能帮到不理解闭包的同学们!...
  13. (转)全球3.4万亿美元ETF蓝海,我们还在末尾 且听全球第二大团队讲真经
  14. 棋牌游戏-c#实现批量修改文件后缀
  15. 泊松回归模型matlab,matlab拟合泊松分布
  16. win7+Ubuntu20.04双系统硬盘安装指南(含踩坑记录)
  17. Vue子组件的显示与隐藏
  18. 设计字体时字体性格的分类表现(二)
  19. 次坐标从0开始_定位基础-坐标变换
  20. 为什么画出的人物是平面,怎样才能画出有立体感的人物

热门文章

  1. 云和恩墨助力渤海财险 保障核心系统高效运行
  2. 马斯克晒出Twitter系统架构图
  3. 【数据恢复】重建分区表恢复文件-恢复diskpart clean
  4. 借助开源项目学习软件开发_借助开源硬件,SparkFun继续创新
  5. MestReNova for Mac中文版(核磁数据处理软件) v14.2.3有哪些改进?
  6. 解读PMP考点:项目估算成本级别与估算成本方法
  7. ERP,读《ERP-从内部集成起步》
  8. 和谐 Visio 2016
  9. 户外电源连接解决方案——同为(TOWE)五孔明装工业防水插座
  10. 电子科技大学计算机16级公示,物光院关于受理2021年博士学位申请工作的通知