`
hulunberbus
  • 浏览: 857998 次
文章分类
社区版块
存档分类
最新评论

Android开发指南-用户界面-绑定数据

 
阅读更多

AdapterView绑定数据Binding to Data with AdapterView

AdapterViewViewGroup的子类,其子视图由绑定某类型数据的适配器Adapter决定。AdapterView用于当你需要在布局中显示存储数据时(不是字符串或可绘制资源)。

画廊Gallery,列表视图ListView,和微调控件Spinner就是适配器视图AdapterView子类的例子,用来绑定到特定类型的数据并以一定的方式显示。

AdapterView对象有两个主要责任:

· 用数据填充布局

· 处理用户的选择

用数据填充布局Filling the Layout with Data

通常是通过绑定AdapterView类到一个适配器Adapter插入数据到布局中,这从外部获取数据(可能是代码中所提供的一个列表数据,或者是设备数据库中的查询结果)。

下面的代码示例执行以下操作:

1. 用现有的一个视图创建一个微调控件Spinner并将其绑定到一个新的ArrayAdapter,该适配器从本地资源中读取颜色数组。

2. 从一个视图创建另外的微调对象,并将其绑定到一个新的SimpleCursorAdapter,将从设备联系人中读取人名(见Contacts.People)。

// Get a Spinner and bind it to an ArrayAdapter that 
// references a String array.
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = ArrayAdapter.createFromResource(
 this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
// Load a Spinner and bind it to a data query.
private static String[] PROJECTION = new String[] {
 People._ID, People.NAME
 };
Spinner s2 = (Spinner) findViewById(R.id.spinner2);
Cursor cur = managedQuery(People.CONTENT_URI, PROJECTION, null, null);
 
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,
 android.R.layout.simple_spinner_item, // Use a template
 // that displays a
 // text view
 cur, // Give the cursor to the list adatper
 new String[] {People.NAME}, // Map the NAME column in the
 // people database to...
 new int[] {android.R.id.text1}); // The "text1" view defined in
 // the XML template
  
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);

注意Projection中的People._ID列是必须的,否则你将收到一个异常。

如果,在你的应用程序生命周期过程中,你改变了适配器所读取的下层数据,你应该调用notifyDataSetChanged()方法。这将通知附着视图数据已经更改,它需要刷新自己。

处理用户的选择Handling User Selections

你通过设置类的AdapterView.OnItemClickListener成员变量为一个侦听器来处理用户的选择并且捕获选择变化。

// Create a message handling object as an anonymous class.
private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() {
 public void onItemClick(AdapterView parent, View v, int position, long id)
 {
 // Display a messagebox.
 Toast.makeText(mContext,"You've got an event",Toast.LENGTH_SHORT).show();
 }
};
// Now hook into our object and set its onItemClickListener member
// to our class handler object.
mHistoryView = (ListView)findViewById(R.id.history);
mHistoryView.setOnItemClickListener(mMessageClickedHandler); 

想了解更多有关如何创建不同AdapterViews讨论,请阅读以下教程: Hello Spinner, Hello ListView, Hello GridView

分享到:
评论

相关推荐

    AWTK开发手册-AWTK开发实践指南-中文手册.pdf

    AWTK开发手册-AWTK开发实践指南-中文手册.pdf AWTK = Toolkit AnyWhere 随着手机、智能手表等便携式设备的普及,用户对 GUI 的要求越来越高,嵌入式系统对高性能、高可靠性、低功耗、美观炫酷的 GUI 的需求也...

    Android高级编程--源代码

     ◆高级开发主题,包括安全、ipc以及一些高级图形和用户界面技术  读者对象  本书面向希望在android手机平台上创建应用程序的所有人员。不管是经验丰富的移动开发人员,还是初出茅庐的新手,都能从本书提供的宝贵...

    新版Android开发教程.rar

    Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商...

    《Android高级编程》

    3.6.3 To-DoList资源示例 3.6.4 为不同的语言和硬件创建资源 3.6.5 运行时配置更改 3.7 深入探讨Android活动 3.7.1 创建一个活动 3.7.2 活动生命周期 3.7.3 Android活动类 3.8 小结 第4章 创建用户界面 4.1 Android ...

    Android程序设计基础

     第二部分讨论Android的用户界面、二维图形、多媒体组件以及简单的数据访问。这些特性在大多数程序中都用得到。  第三部分深入探讨Android平台。这一部分介绍外部通信、基于位置的服务、内置SQLite数据库和三维...

    Android高级编程 part1

    作为使用AndroidSDK构建这些应用程序的实用指南书籍,《Android高级编程》从始至终穿插了一系列示例项目,每个项目都引入Android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍Android的所有基本功能,并...

    Android高级编程 part2

    作为使用AndroidSDK构建这些应用程序的实用指南书籍,《Android高级编程》从始至终穿插了一系列示例项目,每个项目都引入Android的新功能和新技术,以助您达到最圆满的学习效果。书中介绍Android的所有基本功能,并...

    Android高级编程.pdf

    4.2.1 使用View创建Activity(活动)用户界面 4.2.2 Android Widget工具箱 4.3 布局简介 4.4 创建新的View 4.4.1 修改现有的View 4.4.2 创建复合控件 4.4.3 创建定制的Widget和控件 4.4.4 使用定制的控件 4.5 创建和...

    Android基础教程

    书中不仅结合数独游戏开发案例形象生动地讲解了Android生命周期、用户界面、2D图形、多媒体,以及本地数据存储等基础知识,而且通过“Hello, Android”项目深入探讨了外部通信、基于位置的服务、内置SQLite数据库、...

    Android-Fundamental

    Android基础知识介绍Android基础知识(示例项目)是制作出色Android应用程序的一组组件,工具和指南。... 存储与用户界面相关的数据,这些数据在应用程序旋转时不会被破坏。 轻松安排异步任务以实现最佳执

    Java最全面试题宝典.rar

    Android(安卓) Android基础知识 Android内存泄漏总结 Handler内存泄漏分析及解决 Handler、Looper、Message、MessageQueue基础流程分析 Android性能优化 ListView详解 ...Data Binding(数据绑定)用户指南

    Movie-Guide:由TMDb支持的Android电影信息应用

    最小和简单的用户界面,用户可以轻松了解。 从TMDb观看电影,电视节目和演员信息。 搜索和过滤您喜欢的电影,电视节目和人物。 从OMDb观看电影和电视节目收视率。电影指南的实现带有材料设计和动画的Min SDK 21 ...

Global site tag (gtag.js) - Google Analytics