- 浏览: 580344 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (338)
- 已过时文章(留念用) (39)
- Android学习笔记 (30)
- Android开发指引自译 (100)
- Android NDK文档自译 (23)
- Android设计指引自译 (2)
- xp(ペケピー)&linux(理奈、铃)酱~ (4)
- ui酱&歌词自译~ (9)
- lua酱~ (9)
- 自我反省 (1)
- 羽game计划 (1)
- XSL酱 (2)
- java酱 (3)
- 设计的领悟 (58)
- 涂鸦作品(pixiv) (1)
- ruby酱 (2)
- Objective-C编程语言自译 (2)
- Android开发月报 (6)
- objc酱 (2)
- photoshop (3)
- js酱 (6)
- cpp酱 (8)
- antlr酱 (7)
- Lua 5.1参考手册自译 (11)
- 收藏品 (3)
- 待宵草计划 (4)
- 体验版截图 (1)
最新评论
-
naruto60:
太给力了!!!!我这网打不开Intel官网,多亏楼主贴了连接, ...
使用HAXM加速的Android x86模拟器(和一些问题) -
yangyile2011:
谢谢博主,翻译得很好哦
【翻译】(4)片段 -
ggwang:
牙痛的彼岸:痹!
牙痛的彼岸 -
ggwang:
总结得很简练清晰啊,学习了!
ANTLR学习笔记一:概念理解 -
leisurelife1990:
mk sdd
用git下载Android自带app的源代码
【翻译】(24)用AdapterView绑定到数据
see
http://developer.android.com/guide/topics/ui/binding.html
原文见
http://developer.android.com/guide/topics/ui/binding.html
-------------------------------
Binding to Data with AdapterView
用AdapterView绑定到数据
In this document
本文目录
Filling the Layout with Data 用数据填充布局
Handling User Selections 处理用户选择
Related tutorials
相关教程
Spinner
List View
Grid View
-------------------------------
The AdapterView is a ViewGroup subclass whose child Views are determined by an Adapter that binds to data of some type. AdapterView is useful whenever you need to display stored data (as opposed to resource strings or drawables) in your layout.
AdapterView是一个ViewGroup子类,它的子视图由一个绑定到一些类型的数据的Adapter决定。无论是你需要何时在你的布局中显示存储的数据(不同于资源字符串或可绘画对象),AdapterView都很有用。
Gallery, ListView, and Spinner are examples of AdapterView subclasses that you can use to bind to a specific type of data and display it in a certain way.
Gallery,ListView和Spinner是AdapterView子类的示例,你可以使用它们绑定到一个特定类型的数据并且以某种方式显示它。
AdapterView objects have two main responsibilities:
AdapterView对象拥有两个主要职责:
* Filling the layout with data 用数据填充布局
* Handling user selections 处理用户选择
-------------------------------
Filling the Layout with Data
用数据填充布局
Inserting data into the layout is typically done by binding the AdapterView class to an Adapter, which retrieves data from an external source (perhaps a list that the code supplies or query results from the device's database).
插入数据进布局是典型地通过绑定AdapterView类到一个从外部源(可能是一个代码提供的列表或从设备数据库中查询的结果)中取出数据的Adapter来做到的。
The following code sample does the following:
以下代码示例做以下事情:
1. Creates a Spinner with an existing View and binds it to a new ArrayAdapter that reads an array of colors from the local resources.
1. 用一个现存View创建一个Spinner并且绑定它到一个从局部资源中读取颜色数组的新ArrayAdapter。
2. Creates another Spinner object from a View and binds it to a new SimpleCursorAdapter that will read people's names from the device contacts (see Contacts.People).
2. 从一个View中创建另一个Spinner典型并且绑定它到一个从设备电话簿中读取联系人名称的新SimpleCursorAdapter(见Contacts.People)。
-------------------------------
// Get a Spinner and bind it to an ArrayAdapter that
// references a String array.
// 获取一个Spinner并把它绑定到引用一个String数组的ArrayAdapter。
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.
// 加载一个Spinner并绑定它到一个数据查询。
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 adapter
// 把游标传给列表适配器
new String[] {People.NAME}, // Map the NAME column in the
// people database to...
// 映射联系人数据库的NAME列到……
new int[] {android.R.id.text1}); // The "text1" view defined in
// the XML template
// "text1"视图定义在XML模板中
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);
-------------------------------
Note that it is necessary to have the People._ID column in projection used with CursorAdapter or else you will get an exception.
注意必须在投影中有People._ID列被CursorAdapter使用,否则你将得到一个异常。
If, during the course of your application's life, you change the underlying data that is read by your Adapter, you should call notifyDataSetChanged(). This will notify the attached View that the data has been changed and it should refresh itself.
如果,在你的应用程序的生命过程间,你改变被你的Adapter读取的底层数据,那么你应该调用notifyDataSetChanged()。这将通知被依附的View数据已经被改变并且它应该刷新自己。
-------------------------------
Handling User Selections
处理用户选择
You handle the user's selection by setting the class's AdapterView.OnItemClickListener member to a listener and catching the selection changes.
你通过设置类的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.
// 现在挂钩进我们的对象并且设置它的onItemClickListener成员
// 为我们的类处理对象。
mHistoryView = (ListView)findViewById(R.id.history);
mHistoryView.setOnItemClickListener(mMessageClickedHandler);
-------------------------------
-------------------------------
For more discussion on how to create different AdapterViews, read the following tutorials: Hello Spinner, Hello ListView, and Hello GridView.
想获取更多关于如何创建不同AdapterViews的讨论,请阅读以下教程:你好Spinner,你好ListView,以及你好GridView。
-------------------------------
Except as noted, this content is licensed under Apache 2.0. For details and restrictions, see the Content License.
除特别说明外,本文在Apache 2.0下许可。细节和限制请参考内容许可证。
Android 4.0 r1 - 16 Dec 2011 21:54
-------------------------------
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
(此页部分内容基于Android开源项目,以及使用根据创作公共2.5来源许可证描述的条款进行修改)
发表评论
-
【翻译】(9-补丁2)电话簿提供者
2012-07-18 12:54 2400【翻译】(9-补丁2)电话簿提供者 see h ... -
【翻译】(8-补丁1)Android接口定义语言(AIDL)
2012-07-02 05:55 2927【翻译】(8-补丁1)Andro ... -
【翻译】(0)应用组件
2012-06-30 23:50 829【翻译】(0)应用组件 see http:// ... -
【翻译】(88)传感器
2012-05-21 21:25 1078【翻译】(88)传感器 ... -
【翻译】(87)复制与粘贴
2012-05-20 14:48 1929【翻译】(87)复制与粘贴 see http: ... -
【翻译】(86)音频捕捉
2012-05-16 15:14 1104【翻译】(86)音频捕捉 ... -
【翻译】(85)照相机
2012-05-13 15:09 3796【翻译】(85)照相机 see http:// ... -
【翻译】(84)JetPlayer
2012-04-21 16:24 981【翻译】(84)JetPlayer see h ... -
【翻译】(83)媒体回放
2012-04-21 16:00 1860【翻译】(83)媒体回放 see http:/ ... -
【翻译】(82)多媒体与照相机
2012-04-18 23:05 953【翻译】(82)多媒体与照相机 see htt ... -
【翻译】(23-补丁3)构建无障碍服务
2012-04-18 21:57 1627【翻译】(23-补丁3)构 ... -
【翻译】(23-补丁2)使应用程序无障碍
2012-04-16 13:08 2099【翻译】(23-补丁2)使应用程序无障碍 see ... -
【翻译】(23-补丁1)无障碍
2012-04-11 22:38 911【翻译】(23-补丁1)无 ... -
【翻译】(81)Renderscript之运行时API参考手册
2012-04-11 22:13 1416【翻译】(81)Renderscript之运行时API参 ... -
【翻译】(80)Renderscript之计算
2012-04-09 14:09 1444【翻译】(80)Renderscript之计算 ... -
【翻译】(79)Renderscript之图形
2012-04-08 13:59 2866【翻译】(79)Renderscript之图形 ... -
【翻译】(78)Renderscript
2012-04-04 15:35 1442【翻译】(78)Renderscript see ... -
【翻译】(77)可绘画对象动画
2012-03-18 10:52 711【翻译】(77)可绘画对象动画 see htt ... -
【翻译】(76)视图动画
2012-03-18 10:04 806【翻译】(76)视图动画 see http:/ ... -
【翻译】(75)属性动画
2012-03-17 18:24 2508【翻译】(75)属性动画 see http:/ ...
相关推荐
总之,自定义Android的AdapterView涉及到数据适配、视图复用、测量布局、滚动处理等多个关键知识点。通过实现这些功能,你可以创建出符合特定需求的自定义视图组件,提高应用的用户体验。记得在实现过程中注重性能...
一个AdapterView工具,仿照Android里面的AdapterView,用于Unity中
AdapterView 的相关理论主要涉及到 Adapter 接口的实现。Adapter 接口负责管理数据,并将数据转换成可显示的组件。AdapterView 通过 Adapter 接口对象来访问数据,并将数据呈现出来。 AdapterView 的实践 —— ...
AdapterView通过一个ListAdapter来绑定数据源,ListAdapter负责将数据转化为视图。当数据为空时,AdapterView默认会显示一个简单的“无数据”提示,但这样的提示往往过于简单,不能满足复杂的设计需求。因此,我们...
在本教程中,我们将探讨如何将一个数组的数据绑定到ListView上,以便用户可以清晰地查看和交互这些信息。下面将详细介绍这个过程。 首先,我们需要创建一个数组,它将存储要显示在ListView中的数据。这个数组可以是...
至此,我们已经实现了使用SQLite数据库进行数据操作,并将数据绑定到Listview进行显示。同时,我们也为ListView的item设置了点击事件和长按点击事件。在实际开发中,你可以根据需求对这些事件进行具体处理,例如跳转...
3. **实现数据绑定**:在Adapter的`getView()`方法中,将数据项与视图元素进行绑定。通常,为了性能优化,会复用convertView(已存在的视图)。 4. **数据更新**:当数据源发生变化时,需要调用Adapter的相关方法...
在Android开发中,用户界面的设计至关重要,尤其是涉及到数据展示的场景。其中,AdapterView组件和Adapter是构建动态数据视图的核心元素。AdapterView是一组视图类,包括ListView、Spinner、Gallery和GridView等,...
在后台线程中,从服务器或本地数据库获取新的数据,处理数据(例如解析JSON、数据库查询等),并更新到数据源(可能是ArrayList或其他数据结构)。 5. **通知ListView数据变更**: 数据加载完成后,需要通知...
适配器是一个连接数据和AdapterView(ListView就是一个典型的AdapterView,后面还会学习其他的)的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与数据的绑定更加简便,修改更加方便 ...
ArrayAdapter是Android中的适配器类,它可以将数据绑定到UI组件,如ListView或Spinner。创建ArrayAdapter时,需要传入上下文、资源ID(定义Spinner项的布局)和数据集。 4. 设置Adapter: 在Java代码中,使用...
在实际应用中,我们通常会结合Adapter来使用ListView,Adapter扮演着数据源和ListView之间的桥梁角色,将数据转化为ListView可识别的视图元素。本教程将通过一个名为“Demo_ListView”的实例详细介绍如何在Android中...
SimpleAdapter则是ListView常用的适配器,它简化了数据绑定和UI展示的过程。本篇文章将深入探讨ListView和SimpleAdapter的基本使用以及它们在实际应用中的结合。 ### 1. ListView简介 ListView是Android SDK提供的...
适配器会负责从 Realm 获取数据并将其绑定到 GridView 的各个项上。 ```java public class RealmDataAdapter extends BaseAdapter { private Context context; private List<DataModel> dataList; public ...
在本教程中,我们将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口来从MySQL数据库中读取数据,并将这些数据动态地显示在Android应用的ListView组件上,同时利用SimpleAdapter进行数据绑定。...
`ListView下拉刷新获取数据库数据`这个主题涉及到了ListView的交互更新以及如何从数据库中动态加载数据。在这个场景中,用户通过下拉ListView的动作触发刷新操作,系统则从数据库中获取新的数据并更新到ListView上,...
本例中,我们使用ArrayAdapter,它适合简单的数据绑定。创建一个ArrayAdapter的子类,重写`getView()`方法来填充列表项。例如: ```java public class MyAdapter extends ArrayAdapter<String> { public MyAdapter...
使用Adapter可以方便地将解析出的JSON数据绑定到Spinner上。 ```java ArrayAdapter<String> adapter; adapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, cityList); spinner.setAdapter...
1. 增加功能:可以在ListView底部添加一个“添加”按钮,点击后弹出输入框让用户输入新数据,然后将新数据添加到数据列表并调用Adapter的`notifyDataSetChanged()`方法刷新界面: ```java Button addButton = ...
在Android开发中,数据绑定到UI控件是一个常见的任务,ArrayAdapter和SimpleAdapter是两种常用的适配器,用于将数据集映射到ListView等视图组件。本文将深入探讨这两种适配器的使用方法和它们之间的区别。 首先,...