第一课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 ...
随机推荐
- Lenovo System x3650 设置管理接口地址
1.开启服务器. 2.显示<F1> Setup提示后,按 F1.(此提示在屏幕上仅显示几秒钟.必须迅速按 F1.) 如果同时设置了开机密码和管理员密码,则必须输入管理员密码才能访问完整的 ...
- 关于raft算法
列出一些比较好的学习资料, 可以经常翻一番,加深印象 0 raft官方git 1 raft算法动画演示 2 Raft 为什么是更易理解的分布式一致性算法 3 raft一致性算法 4 Raf ...
- 【死磕 Spring】----- IOC 之解析 bean 标签:开启解析进程
原文出自:http://cmsblogs.com import 标签解析完毕了,再看 Spring 中最复杂也是最重要的标签 bean 标签的解析过程. 在方法 parseDefaultElement ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十二║Vue实战:个人博客第一版(axios+router)
前言 今天正式开始写代码了,之前铺垫了很多了,包括 6 篇基础文章,一篇正式环境搭建,就是为了今天做准备,想温习的小伙伴可以再看看<Vue 基础入门+详细的环境搭建>,内容很多,这里就暂时 ...
- 【Android Studio安装部署系列】八、Android Studio主题皮肤更换
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio具有自己的主题皮肤,但是如果想要更换自己喜欢的主题皮肤,可以参考下面的步骤. 注意,更换主题皮肤,之前的 ...
- 【设计模式+原型理解】第三章:javascript五种继承父类方式
[前言] 我们都知道,面向对象(类)的三大特征:封装.继承.多态 继承:子类继承父类的私有属性和公有方法 封装:把相同的代码写在一个函数中 多态: ->重载:JS严格意义上是没有重载,但可以通过 ...
- Python使用Ctypes与C/C++ DLL文件通信过程介绍及实例分析
项目中可能会经常用到第三方库,主要是出于程序效率考虑和节约开发时间避免重复造轮子.无论第三方库开源与否,编程语言是否与当前项目一致,我们最终的目的是在当前编程环境中调用库中的方法并得到结果或者借助库中 ...
- T-SQL 簡易小數處理
今天因應同事提的一則需求,寫了一段 CASE WHEN 的整數與小數處理 過程中居然踩了個雷,特此記錄下來 首先,需求如下: 當內容為整數或零時則去掉尾端的小數否則就顯示原本的小數內容 若內容為 NU ...
- postgresql如何让主键自增
法一: Sql代码 收藏代码 CREATE TABLE customers ( customerid SERIAL primary key , companyname character varyin ...
- asp.net后台管理系统-登陆模块-路由权限控制_1
using System.Web.Routing; //重写System.Web.Routing中Initialize方法 protected override void Initialize(Req ...