Android开发指南-用户界面-绑定数据
来源:互联网 发布:linux reuseaddr 编辑:程序博客网 时间:2024/06/05 08:25
用AdapterView绑定数据Binding to Data with AdapterView
AdapterView是ViewGroup的子类,其子视图由绑定某类型数据的适配器Adapter决定。AdapterView用于当你需要在布局中显示存储数据时(不是字符串或可绘制资源)。
画廊Gallery,列表视图ListView,和微调控件Spinner就是适配器视图AdapterView子类的例子,用来绑定到特定类型的数据并以一定的方式显示。
AdapterView对象有两个主要责任:
·用数据填充布局
·处理用户的选择
用数据填充布局Filling the Layout with Data
通常是通过绑定AdapterView类到一个适配器Adapter来插入数据到布局中,这从外部获取数据(可能是代码中所提供的一个列表数据,或者是设备数据库中的查询结果)。
下面的代码示例执行以下操作:
1. 用现有的一个视图创建一个微调控件Spinner并将其绑定到一个新的ArrayAdapter,该适配器从本地资源中读取颜色数组。
2. 从一个视图创建另外的微调对象,并将其绑定到一个新的SimpleCursorAdapter,将从设备联系人中读取人名(见Contacts.People)。
XML/HTML代码
- // 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成员变量为一个侦听器来处理用户的选择并且捕获选择变化。
Java代码
- // 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);
- Android开发指南-用户界面-绑定数据
- Android开发指南-用户界面-绑定数据
- android用户界面数据绑定
- Android开发指南-用户界面-对话框
- Android开发指南-用户界面-对话框 .
- Android开发指南-用户界面-对话框
- Android开发指南-用户界面-对话框
- Android开发指南-框架主题-用户界面
- Android开发指南 2──用户界面
- Android开发指南-用户界面-菜单特性
- Android开发指南-用户界面-创建菜单
- Android开发指南-用户界面-事件处理
- Android开发指南-用户界面-用户通知
- Android开发指南-用户界面-风格和主题
- Android开发指南-用户界面-创建自定义组件
- Android开发指南-用户界面-绘制视图
- Android开发指南-用户界面-通用布局对象
- Android开发指南-用户界面-事件处理
- Programming in Emacs Lisp笔记(九)List的实现
- Shell脚本学习笔记-语法
- 学习死你们丫的
- Android开发指南-用户界面-事件处理
- 想成功?最聪明的选择是帮助别人成功
- Android开发指南-用户界面-绑定数据
- Android Permission大全
- 读写配置文件(.congfig)步骤,web.config
- HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)
- Ubuntu 10.04开机画面低分辨率问题解决方案
- ……………………
- HTML的发展历程
- 实现超市连锁经营的收银软件哪一种性价比更高?
- DataList中使用单选按钮