博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity之间数据传递
阅读量:7103 次
发布时间:2019-06-28

本文共 1083 字,大约阅读时间需要 3 分钟。

  hot3.png

从一个activity启动另外一个activity,并附带一些数据过去。一般使用的方法是:

Intent intent = new Intent(ProductActivity.this, ProductCommentActivity.class);intent.putExtra("productId", 4026);startActivity(intent);

从一个activity返回到另外一个activity,有时候也需要附带一些数据。这时,2个activity之间数据传递的写法就需要一些规范。

首先,在主activity里面,数据传递或者无数据传递,都需要一个标识,即requestCode。因此,主activity启动另一个activity的写法为:

Intent intent = new Intent(ProductActivity.this, ProductGuigeActivity.class);intent.putExtra("productId", 4026);startActivityForResult(intent, GET_CODE);

这里的get_code是自定义的,为大于等于0的整数。

此处必须使用startActivityForResult来启动,若采用第一种方法,那么,主activity将无法接收到返回的数据。这是根据我修改apidemos里的代码测试的结果。

其次,在子activity里,数据回传的写法为:

Intent intent = new Intent(ProductGuigeActivity.this, ProductActivity.class);intent.putExtra("sel_guige", products.get(pos).getProductId());intent.putExtra("sel_guige_name", products.get(pos).getProductName());setResult(RESULT_OK, intent);

另外,我遇到的另外一个问题是,当我的程序已经启动,在重新运行项目时,会产生一个错误,如图:

130233_eW4i_248756.jpg

这个错误只是在启动的时候异常,程序自动重启之后,则一切正常。但是这会导致所有的activity在切换的时候,都重新创建。导致数据无法回传。

如果在重新部署项目之前,先解释运行的APP,则没有该错误。暂时不知道什么原因。如果有人知道,请指点一下。

转载于:https://my.oschina.net/qii/blog/261640

你可能感兴趣的文章
Java的Properties使用及格式定义
查看>>
树链剖分(转)
查看>>
SQL SERVER 数据类型 (转)
查看>>
linux工作常用命令
查看>>
博客系统 01 登录退出
查看>>
机试题
查看>>
客户端与服务器
查看>>
AtCoder Regular Contest 064 F - Rotated Palindromes
查看>>
cookie
查看>>
jquery改变元素的值的函数text(),html(),val()
查看>>
[深入JUnit] 测试运行的入口
查看>>
Vmware 虚拟机三种网络模式最详细解说【转载】
查看>>
开源文档大震荡:oracle将openoffice捐献给apache基金会
查看>>
单车修电脑的乐趣
查看>>
二维数组排序
查看>>
Android Matrix
查看>>
JS实现OO机制
查看>>
约瑟夫问题
查看>>
python笔记第十天 模块
查看>>
自动办公系统
查看>>