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

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

节选,完整在后面附件

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

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的选择的那个接口即可

 

 

 

使用起来也很简单

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值