\r
Android startActivityForResult实例详解
StartActivityForResult用于两个活动之间的数据传输 。Activity1将值传递给Activity2 , Activity2将值返回给Activity1 。
【AndroidstartActivityForResult实例详解】步骤1:activity 1:StartActivityForResult(Intent Intent Int请求代码)
Intent intent = new Intent(); intent.setClass(Activity1.thisActivity2.class); Bundle bundle = new Bundle(); intent.putExtras(bundle); bundle.putString(abc bbb); startActivityForResult(intent 0); // 跳转并要求返回值 , 0代表请求值(可以随便写 , 但一定要大于=0)
第二步:在Activity2中 , 使用setResult(int result code intent intent)返回数据 , 然后在Activity2中调用finish方法 。
Intent intent = this.getIntent(); Bundle bundle = intent.getExtras(); String bbb=bundle.getString(abc);//接收A的数据 bundle.putString(aaa back);//返回给A的数据 intent.putExtras(bundle); this.setResult(Activity.RESULT_OK intent); //1、结果码可以自定义但必须大于等于0 , //如果B子模块可能有几种不同的结果返回 , //可以用这个参数予以识别区分 。还有个特殊的 RESULT_OK 值 , 没有特殊情况用它就好了 。//返回码可以是ESULT_CANCELED RESULT_OK or any custom values starting at RESULT_FIRST_USER 。//如果调用的child activity失败这个parent activity 将会收到的返回码是RESULT_CANCELED. //2、intent为A传来的带有Bundle的intent , 当然也可以自己定义新的Bundle的intent this.finish(); //Activity2调用finish()方法之后才能返回数据到Activity1
步骤3:活动1:返回数据并重写onactivityresult(int request code int result code intent intent)
@Override protected void onActivityResult(int requestCode int resultCode Intent data) { super.onActivityResult(requestCode resultCode data); if (requestCode == 0 && resultCode == Activity.RESULT_OK) { Bundle bundle = data.getExtras(); gameView.backString = bundle.getString(aaa); Toast.makeText(this backString Toast.LENGTH_SHORT).show(); } }
\r
推荐阅读
- 这样的男人请你放弃 什么样的男人值得嫁
- cf铁骑角色稞身照片美女1级片 cf美女角色稞身照片
- 现代途胜刹车保养 途胜前后刹车片价格
- 室内上水石假山制作如何拼接 上水石假山制作
- 慧鱼碳纤维布和东丽哪个好 巨大的龟舌慧鱼碳纤维布
- 绿豆汤怎么煮才能清热去火
- 咖啡保质期一般多长时间
- 漱口水真的能漱出脏东西吗
- 榴莲可以放多久