• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现),relativelayout

Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现),relativelayout

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现),relativelayout等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现),relativelayout


前言

  啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验。还有就是随着我们的实验的进行,代码量也会越来越多,所以在接下来的博文中会对源码进行取舍,而不会把全部的实验代码都放到博文中~

  大家在看博文时如果有什么意见或者感觉博主有说错、说的不清楚的地方可以在评论中留言,博主会第一时间回复大家~我们一起学习,共同进步~

 

  好啦~进入正题~

  本次Android开发,我们主要探讨一下Intent、Bundle的使用和ListVie的应用——即在实验中我们将复习事件处理、学习 Intent、Bundle 在Activity 跳转中的应用,并学习 ListView 以及各类适配器的用法,在其中我们也会简单讲述一下RelativeLayout(相对布局)的使用。

 

基础知识

1、ListView 的使用

布局上比较简单,在布局文件中写上

即可,这样就创建了一个空的列表,然后在.java 文件中再填充数据,所以 id 是一定要设 的。

 

  在.java 文件中获得这个 ListView 之后,使用 Adapter 为这个 ListView 填充数据,常用 的 Adapter 有 ArrayAdapter、SimpleAdapter,这两种在下面会详细讲述如何使用。随着 ListView 中内容的丰富,以上两种 Adapter 已经很难满足需要,因此现在一般使用自定义 的 Adapter 来填充数据,如何使用自定义的 Adapter 会在拓展知识中讲。(Adapter的作用:数据在adapter中做了处理之后,显示在视图上)

 

ArrayAdapter

最简单的 Adapter,创建 ArrayAdapter 时需指定如下三个参数:

Context:这个参数无须多说,它代表了访问整个 Android 应用的接口。几乎创建所有组件 都需要传入 Context 对象。

textViewResourceId:一个资源 ID,该资源 ID 代表一个 TextView,该 TextView 组件将作 为 ArrayAdapter 的列表项组件。

数组或 List:该数组或 List 将负责为多个列表项提供数据。

示例:

在创建完 ArrayAdapter 之后,调用 ListView 的 setAdapter 方法即可将数据填充到 ListView 中。

   这里有一点要特别注意的是 textViewResourceId 是一个 layout,在这个 layout 中只能有 一个 TextView,其它任何组件都不能有,包括 LinearLayout 等布局组件,否则会报错。

 

SimpleAdapter

  一般的对于ArrayAdapter来说,只需要把一个数组和一个样式传递给ArrayAdapter之后就可以在视图上用一个列表显示出这个字符串数组。

  但是,比如我们手机的联系人目录所示,不仅仅是有列表,而且有头像,可能还有手机号码。所以,单纯的ArrayAdapter是不能够实现这种复杂的视图的。
  我们可以用SimpleAdapter来实现这种复杂的视图,不过需要设计样式。

  由于 ArrayAdapter 只能显示文字,功能实在有限,如果需要多填充一些内容的话指望不 上,这时候可以使用 SimpleAdapter。

  SimpleAdapter 相比 ArrayAdapter 强大很多,创建 SimpleAdapter 需要 5 个参数,第一个 参数依然是 Context,就不多说了,下面介绍余下的 4 个参数:

    第 2 个参数:该参数应该是一个 List<? Extends Map<String, ?>>类型的集合对象,该集 合中每个 Map<String, ?>对象生成一个列表项。

    第 3 个参数:该参数指定一个界面布局的 ID。该界面布局指定每一个列表项的样式。

    第 4 个参数:该参数应该是一个 String[]类型的参数,该参数决定提取 Map<String, ?>对 象中哪些 key 对应的 value 来生成列表项。

    第 5 个参数:该参数应该是一个 int[]类型的参数,该参数决定填充哪些组件。

  示例:

  首先构建好数据,这里模拟了一个图书清单,一个 map 中有两个 key,存放书名和价格, 然后添加到 list 中。

  

  然后创建 SimpleAdapter:

  

之后还是用 ListView 的 setAdapter 方法添加 Adapter。

  看一下 R.layout.item 文件:

  

  可以看到,一个 LinearLayout 包含两个 TextView,一个用于显示书名,一个用于显示价 格,这个 layout 用于规定 ListView 中每一个列表项的样式。SimpleAdapter 中的第四个 参数 String 数组与 map 的两个 key 对应,第五个参数 int 数组与这个 layout 中两个 TextView 的 id 相对应,注意 String[]数组与 int[]数组中的值要一一对应,在这个示例 中,key 为 name 的 value 填充到 id 为 name 的 TextView 中。效果如下图所示:

 

  

 

 

2、ListView 列表项的单击和长按

  方法原型如下:

  

  长按有返回值,在理论课的课件中写的很清楚了,这里就不解释了。注意在两个方法的参 数中都有 int i, long l 这两个参数,i 指的是这一项在列表中的位置,l 指的是这一项的 id,在 ArrayAdapter 和 SimpleAdapter 中,i 和 l 是相等的,在另一种 Adapter—— CursorAdapter 中,l 指的是从数据库中取出的数据在数据库中的 id 值。

 

3、ListView 数据更新

  直观地想,要实现数据更新,只要更新 List,重新创建一个 SimpleAdapter 就可以了,这 样会比较麻烦,SimpleAdapter 有一个 notifyDataSetChanged()方法,当之前创建该 SimpleAdapter 的 List 发生改变时,调用该方法就可以刷新列表了。要特别注意的一点 是,List 不能指向新的内存地址,即不能 list = new ArrayList<>();这样是不起作用 的,只能调用它的 remove(),add()等方法来改变数据集。

示例:

错误写法:

 

 

4、去掉标题栏

  正常的我们平时使用的Android应用都是不包含我们在使用AS调试时出现的标题栏的,那么,这个烦人的标题栏如何去掉呢~

  要去掉标题栏有多种做法,这里举一种方法。 Android Studio 创建项目时默认的 theme 是:

   

  它的定义是:

  

  修改 parent 即可:

   

 

 

5、星星图标的切换

  星星的切换难点在于如何得知星星此时是空心的还是实心的,这个也有多种做法,这里也 只介绍一种。 

  每个 View 都可以设置 tag,通过 tag 可以用来判断该 View 现在的状态。在初始化的时 候,将 tag 设置为 0,标记此时为空心星星,如果星星被点击了,并且 tag 为 0,那么就把 图片换为实心的星星,然后设置 tag 为 1;如果 tag 为 1,那么就把图片换为空心的星星, 然后设置 tag 为 0。建议在 java 文件中给需要的 view 设置 tag。

 

  6、RelativeLayout(相对布局)简述(在以后将会推出Android开发重点难点篇详述相对布局,尽请关注~)

  RelativeLayout(相对布局)是除线性布局之外最常用的,它相对于线性布局来说比较灵活,在进行组件布局的时候用线性布局往往需要进行布局嵌套,而相对布局就不会那么麻烦,每个组件都可以指定与其它组件或父组件的位置,只是必须通过ID来进行指定。    

  RelativeLayout按照各子元素

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现),relativelayout

相关文章

  • 2017-05-26Handler,Looper,HandlerThread浅析,handlerthreadlooper
  • 2017-05-26Android 中基于 Binder的进程间通信,androidbinder
  • 2017-05-26充值,充值平台
  • 2017-05-26Picasso处理同一url,但资源变了的情况,picassourl
  • 2017-05-26安卓自定义view(简单折线图),安卓自定义view折线
  • 2017-05-26Android中的消息通知(NotificationManager和Notification),android通知栏消息
  • 2017-05-26android:ListView缓存机制及BaseAdapter的三重境界(逗比式,普通式,文艺式)
  • 2017-05-26php迁移遇到的问题
  • 2017-05-26Android自定义下拉刷新动画--仿百度外卖下拉刷新
  • 2017-05-26Android开发代码规范,android开发代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ubuntu下安装AndroidStudio
    • Android View分区域点击实现方案——1.根据坐标范围
    • ViewHolder模式超简洁写法,viewholder模式写法
    • nginx使用let’s encrypt https证书并启用http2的使用记录
    • 把一张图缩小放到另一张背景图上。,一张背景图
    • android Listview的自定义界面的使用
    • Android studio 百度地图开发(2)地图定位
    • Android(Linux)实时监测串口数据,android实时监测
    • Android之RecyclerView(二),androidrecyclerview
    • 详细Android Studio + NDK范例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有