setResult与setResultData混淆
来源:互联网 发布:linux tomcat常用命令 编辑:程序博客网 时间:2024/04/28 22:29
在学习安卓几大组件,很多同学在Activity和BroadCastReciver传值之间会遇到一个容易的方法,就是:setResult()和setResultData
首先,setResult()是Activity之间传值用的方法,跟BroadCastReciver没什么关系
要十分注意,在有序的广播中,无论那个广播接受者修改Intent,传递到下一个广播接受者的Intent都是最起始发广播的Intent!!!!!!!!
setResultData,是BroadCastReciver里有序广播传值的一个方法,和Activity之间传值没什么关系.setResultData()方法,就是为了在有序广播中修改传到下一个广播中的值而存在的,且只能存储一个String.
下面条理的详解下各组件之间传值:
可以这么说,Intent这个类的方法,基本适用于每一个组件传值.我所说的基本适用于是指Intent中最常见的两个传值方法
1.值由A.class传递到B.class
A.class中:
- Intent intent = new Intent();
- //设置传递方向
- intent.setClass(A.this,B.class);
- //绑定数据
- intent.putExtra("username1",username);
- intent.putExtra("userpwd1"userpwd);
- /*或者绑定成一捆数据
- Bundle data = new Bundle();
- data.putString("username1",username);
- data.putString("userpwd1",userpwd);
- intent.putExtras(data);
- */
- //启动activity
- this.startActivity(intent);
B.class中:
- Intent intent = getIntent();
- //获取数据
- String username = intent.getStringExtra("username1");
- String userpwd = intent.getStringExtra("userpwd1");
- /* Bundle data = intent.getExtras();
- String username = intent.getString("username1");
- String userpwd = intent.getString("userpwd1"); */
2.除了A.class可以向B.class传值外,B.class也可以返回值
A.class中
this.startActivity(intent);
改为this.startActivityFroResult(intent,1);//1为请求码
B.class中
对传过来的intent对象赋新值
- intent.putExtra("username2",username2);
- intent.putExtra("userpwd2",userpwd2);
- this.setResult(1,intent);
- this.finish();//结束焦点
A.class中重写
- @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){
- super.onActivityResult(requestCode,resultCode,data);
- if(resultCode==1)
- {
- //可从data中取出值
- }
- }
A.class中取出B.class中intent传过来的值
Activity中返回传值,也就是setresult方法
.除了A.class可以向B.class传值外,B.class也可以返回值
A.class中
this.startActivity(intent);
改为this.startActivityFroResult(intent,1);//1为请求码
B.class中
对传过来的intent对象赋新值
- intent.putExtra("username2",username2);
- intent.putExtra("userpwd2",userpwd2);
- this.setResult(1,intent);
- this.finish();//结束焦点
A.class中重写
- @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){
- super.onActivityResult(requestCode,resultCode,data);
- if(resultCode==1)
- {
- //可从data中取出值
- }
- }
A.class中取出B.class中intent传过来的值
setResultData()方法是在有序广播中修改传到下一个广播中的值,只能存储一个String.
- setResult与setResultData混淆
- startActivityForResult与setResult
- Activity之onActivityResult与setResult
- Android Activity 中 onActivityResult() 与 setResult()
- Android Activity 中 onActivityResult() 与 setResult()的调用时机
- Activity的跳转与传值 startActivity,onActivityResult,setResult
- Android Activity 中 onActivityResult() 与 setResult()的调用时机
- Android Activity 中 onActivityResult() 与 setResult()的调用时机
- Android Activity 中 onActivityResult() 与 setResult()的调用时机
- 关于StartActivityForResult与setResult对activity执行生命周期影响
- android-Activity的跳转与传值:startActivityForResult,setResult,onActivityResult
- Android反编译与混淆
- 打包与混淆代码
- android混淆与反射
- 混淆与反编译
- 反编译与混淆
- 代码混淆与反编译
- 混淆与反编译
- 详细解析BluetoothAdapter的详细api
- POJ 3373 Changing Digits
- RStudio快捷键
- 使用Nexus创建Maven私有仓库
- centos6环境创建局域网http方式的yum源
- setResult与setResultData混淆
- Leetcode Self Crossing
- 初学android开发--day07
- char[],char *,string之间转换
- 62. Unique Paths
- c/c++基础知识点
- PHPStorm获取免费社区激活
- k-means确定初始中心值的方法
- 观察者模式