adapter在android中相当于连接View与其显示内容之间的桥梁,感觉用映射来形容应该还是比较贴切的,他将内容映射到View应该显示的地方,从而使代码更加简单可观。不多说,现将从网上看到的一些代码的理解记录下来,留待后用。
以View中的spinner和adapter为例。首先在 String.xml中声明一个表示颜色的数组
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MainHelloSpinner</string>
<string name="color">选择色彩:</string>
<string-array name="colors">
<item>黑色 | Black</item>
<item>蓝色 | Blue</item>
<item>棕色 | Brown</item>
<item>绿色 | Green</item>
<item>灰色 | Grey</item>
<item>粉色 | Pink</item>
<item>紫色 | Purple</item>
<item>红色 | Red</item>
<item>白色 | White</item>
<item>黄色 | Yellow</item>
</string-array>
</resources>
这些内容将会显示在spinner的下拉栏里面。当然,我们需要在main.xml中创建我们所需要的spinner,这样我们才能将他们联系起来,否则空有数组而无处显示。当所有一切都建妥这是我们可以看到自动更新的R.java中显示的内容为:
public final class R {
public static final class array {
public static final int colors=0x7f050000;
}
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int spinner=0x7f060000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
public static final int color=0x7f040001;
}
}
之后我们在我们的Activity中找到我们需要的spinner,然后
//准备一个数组适配器
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
//设置下拉样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//为下拉列表设置适配器
spinner.setAdapter(adapter);
//定义子元素选择监听器
OnItemSelectedListener oisl= new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainHelloSpinner.this,"选择的色彩: " +
parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
};
//为下拉列表绑定事件监听器
spinner.setOnItemSelectedListener(oisl);
}
在这里我们可以发现,对比spinner的定义
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/color"
/>
spinner中显示的内容完全不需要在spinner定义,而只需通过adapter来完成,当然,这样说不确切,应该说由它所对应的数组来完成。至于adapter中所用方法的一些细节,如每一个函数作用,每一个函数参数含义,还需要继续研修。下次继续
分享到:
相关推荐
在"adapter_C++_adapter_源码"这个项目中,我们可以预期包含一个C++实现的适配器模式的源代码文件。通常,适配器模式有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现,而对象适配器模式则通过组合来...
以下是对Eclipse Adapter机制的详细解析: 1. **适配器模式**: 在软件工程中,适配器模式是一种设计模式,它允许两个不兼容的接口之间进行通信。Eclipse的Adapter模式主要是将模型对象(Model)转换为视图对象...
【压缩包子文件的文件名称列表】: canal.adapter-1.1.6.tar.gz 表明压缩包内可能包含源码、配置文件、文档、依赖库等,用于解压后构建、安装和运行Canal适配器1.1.6版本。 **详细知识点:** 1. **Canal组件**:...
本文将深入探讨如何在ListView中实现动态删除功能,并提供相关的源码解析。 首先,ArrayList是一个动态数组,允许我们在运行时添加、删除和修改元素。在ListView中,我们通常使用自定义Adapter来连接数据源(如...
这个"AdapterDemo.zip"应该包含了实现上述功能的源代码,通过阅读和分析这个示例,开发者可以更好地理解和掌握如何在实际项目中有效地使用Adapter。无论你是初学者还是有经验的开发者,这个示例都能为你提供有价值的...
本文将深入探讨`RecyclerView`中的通用`Adapter`适配器,并通过实例代码进行解析。 `RecyclerView.Adapter`是`RecyclerView`的数据绑定机制,它负责创建和管理`ViewHolder`对象,以及根据数据集填充这些`ViewHolder...
在Android开发中,`RecyclerView` 是一个非常重要的组件,它用于展示可滚动的列表或网格视图,提供了高效的...在实际项目中,这种Adapter的使用可以显著提升开发效率,减少代码量,同时保持代码的可读性和可维护性。
"adapter-master"通常代表这是项目的主分支或者源码仓库,可能是从GitHub等代码托管平台下载的。"master"分支通常是开发的主要分支,包含了项目最新的稳定版本。 **知识点详细说明:** 1. **WebRTC技术**:WebRTC...
在Canal Adapter 1.1.4中,我们深入分析了原有代码,找到了导致删除和更新操作出错的根源。通过对源码的精细调整,现在Canal Adapter能够正确处理这些操作,确保数据的一致性和完整性。无论是DML(Data ...
本文将深入解析如何根据CSDN鸿洋大神的博客,自定义一个通用的Adapter,以满足不同场景下的ListView和GridView的适配器需求。 首先,理解Adapter的作用。Adapter是Android中的一个接口,它是连接数据源(如...
同时,集成监控工具,如 IBM Tivoli Monitoring 或其他日志分析工具,以便实时跟踪服务性能和故障。 总的来说,扩展 WebSphere JDBC Adapter 标准入站服务是一个涉及多个层面的过程,包括但不限于业务逻辑扩展、...
- Adapter:Canal Adapter是连接Canal Server和目标系统的桥梁,它将Canal Server解析出的binlog事件转换为目标系统能够理解的数据格式,实现数据同步。 2. **部署Canal Deployer** Canal Deployer是Canal的部署...
在标题提到的 "设计模式原代码 ADAPTER" 中,我们可以推断这是提供了适配器模式的具体实现代码。适配器模式通常包括以下几个关键角色: 1. **目标接口(Target)**:这是客户希望调用的接口,定义了客户所需要的...
`org.eclipse.jdt.core`是Eclipse的核心Java开发组件,负责解析、编译和索引Java源代码;`org.eclipse.jdt.core_3.6.2.v_A76_R36x.jar`和`org.eclipse.jdt.core_3.5.2.v_981_R35x.jar`可能是不同版本的这个组件,...
在Android开发中,RecyclerView是一个非常重要的组件,它用于展示可滚动的列表数据,极大地提高了应用的性能和用户体验。...分析和学习这个实现可以帮助我们更好地理解和运用万能Adapter,提升Android应用的开发效率。
在后续的源码分析中,可以更深入地研究`setup_signalfd()`、`connect_dbus()`和`adapter_init()`等关键函数,以及它们如何与`gdbus`、`libbluetooth`和`gobex`等组件协同工作,来实现蓝牙设备的发现、连接、数据传输...
《C++设计模式:Adapter模式解析与应用》 在软件工程中,设计模式是一种解决常见问题的可重用解决方案,它代表了最佳实践,并已被广泛接受。Adapter模式,也称为适配器模式,是设计模式中的一种,它允许两个不兼容...
ember-data-django-rest-adapter-master 这是压缩包中的主要目录,暗示了源代码和其他相关文件都在这个目录下。"master"通常指的是项目的主要或默认分支,意味着这是项目的核心代码库。 **知识点详解:** 1. **...