Android 不同Activity之间的传值
2017-03-08 12:51
441 查看
一直想换个头像,无奈总是保存不成功,你们是如何换的呢?
在Activity_B里取值,这样子取,直接上代码
就酱
好吧,刚刷了下代码。
如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,
当前activity需要重写onActivityResult(int requestcode,int resultcode,intent intent);
当被启动的activity返回结果时,这个方法被触发。
requestcode和resultcode都是开发者自定的。
被启动的activity需要调用setResult()方法设置处理结果。
做到这两点就可以了。
在Activity_B里回去这样写
就酱
Activity_A 传值到 Activity_B
iOS里面的很简单,就是B界面会有几个共有的参数,直接填上就好了,思路都差不多,这里有个Bundle的概念,就是用这个东西去传值,废话不多讲,直接上代码//上一次讲的跳转相关 Intent intent = new Intent(); intent.setClass(lianxi.this,second.class); //主角,它把数据压进了一个叫做Bundle的东西里面,里面是键值对,取的时候特别好取 Bundle bundle = new Bundle(); bundle.putDouble("height",height); bundle.putString("sex",sex); //再将bundle压进传令兵里面。就可以了 intent.putExtras(bundle); startActivity(intent); lianxi.this.finish();
在Activity_B里取值,这样子取,直接上代码
Bundle bunde = this.getIntent().getExtras();//这个意思就是掏出来数据,类型还是Bundle String sex = bunde.getString("sex");//这个是从Bundle里面取出键为sex的字段 double height = bunde.getDouble("height");//同理上
就酱
Activity_B 返回值到前一个Activity
在iOS里面最常见的就是用代码块回传值,OC叫做block,Swift叫做闭包,一样的东西。好吧,刚刷了下代码。
//传令兵 Intent intent = new Intent(); intent.setClass(lianxi.this,second.class); Bundle bundle = new Bundle(); bundle.putDouble("height",height); bundle.putString("sex",sex); //数据压进它的口袋 intent.putExtras(bundle); //这句话比较厉害,和以往不同的是lianxi.this.finish()这个都木有 startActivityForResult(intent,0);
如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,
当前activity需要重写onActivityResult(int requestcode,int resultcode,intent intent);
当被启动的activity返回结果时,这个方法被触发。
requestcode和resultcode都是开发者自定的。
被启动的activity需要调用setResult()方法设置处理结果。
做到这两点就可以了。
//重写onActivityResult当被启动的activity返回结果时,这个方法被触发。 protected void OnActivityResult(int requestCode,int resultCode,Intent data) { switch (resultCode) { case RESULT_OK: Bundle bundle = data.getExtras(); String sex = bundle.getString("sex"); double height = bundle.getDouble("height"); et.setText(""+height); if(sex.equals("M")) { rb1.setChecked(true); }else { rb2.setChecked(true); } break; default: break; } }
在Activity_B里回去这样写
Intent intent = this.getIntent(); second.this.setResult(RESULT_OK,intent); second.this.finish();
就酱
相关文章推荐
- Android Studio 不同Activity 之间传值并进行使用传回的值
- Android之不同Activity之间的数据传递
- android中不同activity之间共享数据
- Android开发:不同的Activity之间…
- Android中不同Activity之间传递自定义对象的参数问题的解决
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- Android之不同Activity之间的数据传递
- android Intent实现Activity之间跳转并传值
- android学习之不同activity之间传递数据
- Android 多Activity之间跳转传值
- 通过intent、ClipboardManager在android不同activity之间传递数据
- Android开发——不同Activity之间的切换和数据传输
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
- android 不同activity之间传递数据
- Android:在不同的Activity之间进行数据的共享
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- 【Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用】的改进!
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值