《宅男的android开发指南》(翻译)--5

本文详细介绍了Android中适配器(adapter)的概念、作用及使用方法,包括ArrayAdapter、CursorAdapter、SimpleAdapter等常见适配器的使用场景与实现方式。重点阐述了适配器如何将数据以列表形式展示于特定的小部件中,以及如何通过适配器自定义视图展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

=====================================

节选,完整在后面附件

=====================================

8 使用具有选择作用的部件---Adapter

 

在之前我们所看到的基本控件,均可以保存一些数据,也可以设置一定的格式让用户输入。比如只输入数字或者电话号码。这样的设置能保证在手机的优先输入设备上快捷的输入手机号码或者别的数据信息。

当然,我们在使用桌面控件的时候,最常用的可能就是带有选择性质的空间了,经典的如listbox,comboboxdrop-down list等等。这些都是c/s程序常见的控件。Android也为我们提供了具有类似功能的部件。

更重要的是,当然这也是android的特点了,android为我们提供了一个灵活的框架,用来更自由的决定选项中填充的是什么数据。

尤其需要了解的就是,android使用了一个称作数据适配器(adapter)的框架来进行数据的存放。通过适配器,我们可以保存数组(Arrays),或者数据库内容(database content)。

接下来我们正式认识下:

 

适配特定的环境

 

抽象角度来看,adapter们提供了一个公共的接口用于封装不同的APIs。更进一步说,适配器为小部件们提供了一个访问各种数据的接口。

Android所提供的适配器,主要是负责将保存的数据以花名册的形式依次显示在特定的部件中去,并经进行目录的选择等操作。

 

 

使用ArrayAdapter(数组适配组)

 

  ArrayAdapter是最简单的适配器。我们所需要做的事情就是将一组数组数据保存到java.util.List 的实例中去。

 

可以看到,数组适配器的构造方法拥有三个参数。

l       Context 上下文,相当于画布,我们可以理解为你要想显示的部件是在哪个界面(Activity)中的。那么那个Activity就是这个Context

l       Resource ID :一个ViewID,我们这里常用来引用的是布局中的各种样式

l       第三个参数,就是我们实际要展示的数据数组了。

 

默认情况,在列表(List)中展示数据,ArrayAdapter将会自动调用每一个Object数据的toString()方法用于自适应(wrap_类型)空间。

我们上面代码中使用的第二个参数

   Android.R.layout.simple_list_item1 ,是系统提供的(因为是android 开头的哦)

表示我们使用列表展示数据的时候,这些数据都是文本类型,如果需要展示图片啊,或者带有选择按钮的,那么就要是用系统提供的别的样式了,在eclipse中很容易看到别的样式。

 

那么,我们一般是使用 list或者spinner来展示这个数组适配器

 

 

Ps:我们可以参考官方API中的例子来学习~

 

你可以继承ArrayAdapter这个类,然后重写getView()方法,得到你自己的View哦。

 

 

getView()接受三个参数

 

1:要显示的view的索引

2:一个存在的view来更新指定位置的数据。如果没有这个view,你需要自己实例化一个对象来展示数据哦

3:用于保存view的部件。有比较

 

 

上面的例子中,适配器使用返回的就是一个TextView,仅仅是文字展示。如果你想返回复杂点的,那么完全可以自定义适配器,然后返回你希望返回的数据哦

 

 

其他的一些重要的适配器

 

  android中,除了arrayadapter以外,你可能还会使用的有

l       CursorAdapter :光标适配器。把一个Cursor(光标),典型的情况是来自于一个content provider(之前介绍过,一般保存数据库的数据的),显示在view

l       SimpleAdapter:xml文件中的数据转换到界面中去

l       ActivityAdapter,和ActivityIconAdapter 通过一个特定的intent,可以使用活动activi的名字或者图标就能调用相应的活动。

 

 

 

我们看看如何使用

 我们印象中,最常见的选择性的控件应该就是列表了。在android中,为我们提供了ListView这个部件。它提供ListBox一样的功能。我们可以调用setAdapter()方法,来为一个ListView填充数据。通过setOnItemSelecterdListenter()方法来注册这个ListView,监听选择状态。

  注意,上面的情况是,我们使用普通的Activity来包含这个ListView

但是,如果你的Activity中只是纯粹的一个List的话,那么我们推荐你是用Activity的子类:ListActivity。而不是使用普通的Activity。如果你的主界面就只是list,那么你甚至不需要提供一个Layout布局,因为ListActivity在构造的时候就已经包含了一个完整的屏幕。如果你希望自定义你的布局,只要你给listview id一个值,比如 @android:id/list,那么ListActivity就可以根据id找到这个ListView

下面看看例子

 

 

 

一个文本,一个list

Java代码中,填充数据应该这样做:

 

界面:

 

 

知道如何使用了吧~~~很简单哦。。

 

 

下拉列表的使用(Spinnner

android中,所提供的Spinner这个部件跟传统的下拉列表的作用是一样的。按住下拉列表,就会弹出一个界面,上面列出列表中的所有选项供你选择。默认的下拉列表是只能选中一个。

 

如何使用它呢?其实啊,跟ListView用法是一样的。

你只要提供一个适配器,用于保存数据,通过setAdapter()方法就可以把数据绑定

你可以通过setOnItemSelectedListener()方法来监听选择状态。

 

如果你想改变Spinner上显示列表的界面样式,那么你需要进行相应的配置。注意,我们修改的不是部件(即Spinner),而是适配器。我们使用适配器的setDropDownViewResource()方法来使用由ResourcesId所提供的样式。

 

 

 

 

这是一个简单的下拉列表的例子。

Java代码中填写

 

 

只需要注意到Activity这个类实现了AdapterView的选择的那个接口即可

 

 

 

使用起来也很简单

 

内容概要:本文档详细介绍了一个基于多任务学习(MTL)结合Transformer编码器的多变量时间序列预测项目。该项目旨在解决多变量时间序列预测中的复杂性、长序列依赖、任务间干扰等问题,通过融合多任务学习与Transformer架构,构建了一套高效且可扩展的预测系统。项目覆盖了从环境准备、数据预处理、模型构建与训练、性能评估到GUI界面设计的完整流程,并提供了详细的代码实现。模型采用多头自注意力机制有效捕捉变量间及时间维度上的复杂依赖,通过多任务共享层和任务特异性层实现任务间知识共享与个性化特征提取。此外,项目还引入了动态任务权重调整、轻量化设计、数据预处理优化等关键技术,确保模型在实际应用中的高效性和准确性。 适合人群:具备一定编程基础,特别是对深度学习和时间序列分析有一定了解的研发人员和技术爱好者。 使用场景及目标:① 提升多变量时间序列预测的准确率;② 实现高效的时间序列特征提取;③ 促进多任务学习在时间序列领域的应用推广;④ 提供可扩展的模型架构设计,适应不同应用场景的需求;⑤ 降低模型训练与推断的计算资源需求;⑥ 促进复杂系统的智能决策能力,如智能制造、能源管理、金融分析、气象预报等领域的精准预测支持。 其他说明:项目不仅提供了完整的代码实现和详细的文档说明,还设计了用户友好的GUI界面,方便用户进行数据加载、参数设置、模型训练及结果可视化等操作。未来改进方向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值