第一课android开发之在activity间传递参数
一、活动间简单参数传递:
1.在布局中添加按钮,用<Button,用id设置id名称,id="@+id/这儿填写你要设置成的名称";
用text设置按钮上显示的文字。text="这儿填你要填的名称"
2.在布局中用textview来显示一个文本框内容。
3.在一个activity的java程序中,用findviewbyid(r.id.这儿填要找的id).setOnClickListener()
来将该活动中某一个按钮设置监听器。
findviewbyid用来找到该按钮在布局中的具体的,然后setonclicklistener
来设置监听器。
4.在监听器函数中用intent来设置变量来表示目的,给新建的intent构造函数传入两个参数
第一个参数为某一活动.某一类
第二个参数为某一个函数.某一按钮或者该activity全局(id.class)
用startactivity来启动intent变量。
在中间用intent的方法putextra传入简单数据;
接收参数:
在接受的活动中用intent i=getintent方法来接收参数
将文本框用i.getStringExtra来得到传过来的参数;
二、传递数据包
将监听器中定义一个包bundle的变量
用包bundle的变量的方法来实现传入参数
然后用intent变量的方法putextras将bundle传进
在接受参数的活动中,重新定义一个bundle的包,用intent的getextras来获取
文本框获取文字的另一个方法用String.format,其中参数按照print形式
getstring有一个重载函数,第一个变量输入的key
第二个变量输入没有key的默认值
或者在监听器中用intent变量的方法putextra("","")传进
第一个变量为key,他的值为第二个变量,第二个变量传入的bundle变量名称
在接受函数中变为intent变量的getbundleExtra的方法
三、在多个activity间传递值对象
创建一个java类User
将intent的变量使用方法putextra("","")
第一个参数传入一个key,第二个参数传入构造一个新的User,例如new User("zhang",2)
并将第二个变量定义为Serializable(java内置序列化对象接口)
或者(android平台提供的序列化接口)
使用Serializable,操作简单,但运行慢
在User类implements Serializable,序列化操作系统会自动做
在接收的活动中,用String.format函数接受的时候,
使用 类名 inof,后面会自动提示要接收类里的哪一个函数返回值;
使用Parcelable,操作复杂,运行快
会报错,可自动添加两个方法来实现
还得向第二个方法中添加全自动序列化的代码
dest.writeString(getName());
dest.writeInt(getAge());
还需要创建一个public static final Creator<User>CREATOR=new Creator<User>()
在其中添加return new User(source.readString(),source.readInt());
若不止一个需要传输的数据是string或int时,通过writebundle来实现
四、获取activity返回参数
用linearLayout来设置布局,orientation来设计布局方式
用setresult返回子函数的返回值,第一个值表示判断是否返回
finish结束当前activity
在主函数中不用startactivity来得到返回值,而是通过startactivityforresult来得到返回值
可获得请求码和结果码,第三个参数得到setresult中的第二个参数
第一课android开发之在activity间传递参数的更多相关文章
- android开发之在activity中控制另一个activity的UI更新
转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法: 遇到一个问题,需要在一个activity中控制另一个acitivit ...
- Android开发之bug-No Activity found to handle Intent
android.content.ActivityNotFoundException: No Activity found to handle Intent 做Android开发中,使用隐式intent ...
- Android开发之Tween(补间动画)
在android中动画主要有三种,①帧动画(http://blog.csdn.net/dmk877/article/details/45893017)这篇文章已经详细的进行了讲解,②补间动画这也是这篇 ...
- Android学习手记(3) Activity间传递数据
1. 简单数据传递 建立两个Activity,名称分别为MainActivity和TheAty,在MainActivity中新建一个Button,id为btnStartAty.在TheAty中新建一个 ...
- Android广播接收器和Activity间传递数据
Activity向广播接收器传递数据很简单,只需要在发送广播前将数据put进Intent中就行了. 广播接收器怎么向Activity传送数据?这里要用到接口,通过在广播接收器里定义一个接口,然后让接收 ...
- activity间传递参数
传递值对象 值对象可以理解为自定义的数据类型对象. 为了完成这个知识点的讲解,先来创建一个User类型的类,它有name和age两个属性,然后请添加getter/setter方法,构造方法等基本方法. ...
- Android开发之InstanceState详解(转)---利用其保存Activity状态
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- Android开发之旅4:应用程序基础及组件
引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用 ...
- Android开发之InstanceState详解
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
随机推荐
- libaio.so.1()(64bit) is needed by MySQL-server 问题解决办法
[root@localhost upload]# rpm -ivh MySQL-server-5.5.25a-1.rhel5.x86_64.rpmerror: Failed dependencies: ...
- 教你如何把openfire的muc聊天室改造为群
openfire群聊与QQ群对比 应该是去年的时候开始接触openfire,当时在分析后发现基于xmpp协议的openfire已经具备了群聊的功能.也就没太当回事,觉得加点功能就可以做成类似于QQ群的 ...
- Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解决一些依赖 Windows 的痛点问题
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 缓存穿透,缓存雪崩,热点key及解决办法
1.穿透 穿透:频繁查询一个不存在的数据,由于缓存不命中,每次都要查询持久层.从而失去缓存的意义. 解决办法: 持久层查询不到就缓存空结果,查询时先判断缓存中是否exists(key) ,如果有直接返 ...
- for in 使用
// JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写. var json = { "id": 1, "n ...
- python的进程与线程(一)
摘要: 源地址:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 如有侵权,立即删除 操作系统 学习进程和线程的知识,先了解一下底层操作 ...
- 网络协议 18 - CDN:家门口的小卖铺
[前五篇]系列文章传送门: 网络协议 13 - HTTPS 协议:加密路上无尽头 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - D ...
- C# 《编写高质量代码改善建议》整理&笔记 --(五)类型设计
1.区分接口和抽象类的应用场合 区别: ①接口支持多继承,抽象类则不能. ②接口可以包含方法,属性,索引器,事件的签名,但不能有实现,抽象类则可以. ③接口在增加新方法后,所有的继承者都必须重构,否则 ...
- 【Android Studio安装部署系列】三十、从Android studio2.2.2升级到Android studio3.0之路
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android Studio 3.0的新功能 https://mp.weixin.qq.com/s/2XmVG4mKEDX6-bvZ ...
- DotNetCore跨平台~dotnet pack打包详细介绍
回到目录 dotnet pack 命令生成项目并创建 NuGet 包.这个操作的结果是两个 nupkg 扩展名的包.一个包含代码,另一个包含调试符号. 该项目被依赖的 NuGet 包装被添加到 nus ...