在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B activity上得到一些返回值,这个时候我们就不能使用startActivity方法了,而是使用 startActivityForResult方法来完成我们的操作。

例如,我们希望完成下面一个功能,在MainActivity上,写上一个算术表达式,然后跳转到到第二个SecondActivity上,在这个Activity上将第一个Activity的表达式显示出来,然后我们可以输入我们的算术表达式结果,然后点击按钮,将这个结果值又返回给我们的MainActivity

  1. public class MyList extends Activity {
  2. private EditText editView;
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. editView = (EditText) findViewById(R.id.et);
  8. Button bt = (Button) findViewById(R.id.bt);
  9. bt.setOnClickListener(new OnClickListener() {
  10. @Override
  11. public void onClick(View v) {
  12. Intent intent = new Intent(MyList.this, TestWidget.class);
  13. Bundle bundle = new Bundle();
  14. bundle.putString("text", editView.getText().toString());
  15. intent.putExtras(bundle);
  16. startActivityForResult(intent, 0);
  17. // finish(); //这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
  18. }
  19. });
  20. }
  21. /**
  22. * 取到回传的值
  23. */
  24. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  25. switch (resultCode) { // resultCode为回传的标记,我在B中回传的是RESULT_OK
  26. case RESULT_OK:
  27. Bundle b = data.getExtras(); // data为B中回传的Intent
  28. editView.setText(b.getString("text"));// 回传的值
  29. break;
  30. default:
  31. break;
  32. }
  33. }
  34. }
 1 public class TestWidget extends Activity {
 2
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.list_items);
 7
 8         Bundle bundle = getIntent().getExtras();
 9
10         final EditText editView = (EditText) findViewById(R.id.et1);
11         editView.setText(bundle.getString("text"));
12
13         Button bt = (Button) findViewById(R.id.bt1);
14         bt.setOnClickListener(new OnClickListener() {
15             @Override
16             public void onClick(View v) {
17                 Intent intent = new Intent(TestWidget.this, MyList.class);
18
19                 Bundle bundle = new Bundle();
20                 bundle.putString("text", editView.getText().toString());
21                 intent.putExtras(bundle);
22
23                 setResult(RESULT_OK, intent);
24                 finish(); // 这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
25             }
26         });
27     }
28
29 }  

转载于:https://www.cnblogs.com/zcl1224/p/3691415.html

Android:通过startActivityForResult方法来得到Activity的回传值相关推荐

  1. 以回调形式使用startActivityForResult方法,并解决Activity被回收的问题

    前言 之前写过一篇文章写一个逻辑清晰的startActivityForResult(),拒绝来回扒拉代码,写了使用回调形式使用startActivityForResult方法,配合Kotlin的语法, ...

  2. Android 组件系列-----Activity的传值和回传值

    在这篇随笔里将讲解Activity的传值和回传值. 一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity, ...

  3. Android系列之Activity的传值和回传值

    Android系列之Activity的传值和回传值 Android 组件系列之Activity的传值和回传值 在这篇随笔里将讲解Activity的传值和回传值. 一.通过startActivity来进 ...

  4. Android之moveTaskToBack()方法实现手动隐藏当前Activity

    1.moveTaskToBack()方法说明 moveTaskToBack()方法:在activity中调用 moveTaskToBack (booleannonRoot)方法即可将activity ...

  5. Android之startActivityForResult的使用

    在Android中startActivityForResult主要作用就是: A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A ...

  6. intent的startActivityForResult()方法

    /********************************************************************************************  * aut ...

  7. android 之Activity的五种传值方式 (在从当前Activity跳转到目标Activity时的传值方式)

    A.使用intent(意图)传值 MainActivity(源文件):         1.intent.putExtra(key,value):key一般是String,值为 java八大基本数据类 ...

  8. 【Android】startActivityForResult()与onActivityResult()与setResult()参数分析

    一.使用场景 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Ac ...

  9. Android学习笔记系列四2 —— Activity的生命周期

    2019独角兽企业重金招聘Python工程师标准>>> 启动一个Activity 使用startActivity(Intent intent). intent指定了你想要启动的act ...

最新文章

  1. 1291 火车线路(区间修改,区间最值)
  2. 【知识积累】C#中结构体和类的区别
  3. IT管理人员需要更加了解数据中心冷却情况
  4. 王者荣耀6月23服务器维护,王者荣耀6.23维护到什么时候?6月23日长枪掠火版本异常介绍...
  5. 目标检测之SSD数据处理、训练与预测流程记录
  6. 解决mapper.xml不在resource的时出现的错误nvalid bound statement (not found): com.dxl.system.mapper
  7. 微信,QQ抢红包软件原理解析
  8. python怎么读单词_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...
  9. 2020年北京给进口摩托车(川崎)交税、验车、上牌照流程
  10. 最新中国一二三四五线城市排名出炉!去这些城市买房准没错!
  11. Windows系统,文件和文件夹命名规则
  12. 怎样在excel表格中画斜线并打字_你会用Excel做 表头 吗?
  13. 高德地图api的使用
  14. 高职单招面试流程及技巧有哪些
  15. SSLOJ 1459.空间简单度【扫描线】【线段树】
  16. JS:二叉树(2)——递归操作节点、构造二叉树
  17. python识别人脸的年龄和性别_人脸识别是如何判断性别和年龄的?
  18. C语言 精典数值算法程序合集
  19. 设计高并发架构与系统多级缓存架构如何设计?
  20. echarts分享(四):双y轴图表刻度均匀分布问题

热门文章

  1. 2LIS_13_VDITM中开票项目数量计算错误
  2. FZU 1402 猪的安家 中国剩余定理
  3. java获取系统时间并自定义格式
  4. Rust FFI 编程--理解不同语言的数据类型转换
  5. (57)Verilog HDL选择运算符:?
  6. 114实名认证未通过_企业微信怎么实名认证?实名认证后还可以改吗?
  7. fft 相位谱_基于级联FFT的广义互相关算法在声源定位中的应用
  8. 数据结构之图的存储结构一及其实现
  9. 风险评估资产重要性识别_什么是风险分析,如何识别和评估风险?
  10. html里面textfield属性,StyleableTextField的CSS属性htmlText