在一些情况下,我们通过 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. }
 public class TestWidget extends Activity {  

     @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_items); Bundle bundle = getIntent().getExtras(); final EditText editView = (EditText) findViewById(R.id.et1);
editView.setText(bundle.getString("text")); Button bt = (Button) findViewById(R.id.bt1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(TestWidget.this, MyList.class); Bundle bundle = new Bundle();
bundle.putString("text", editView.getText().toString());
intent.putExtras(bundle); setResult(RESULT_OK, intent);
finish(); // 这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
}
});
} }

Android:通过startActivityForResult方法来得到Activity的回传值的更多相关文章

  1. 在多个Activity中回传值(startActivityForResult())

    业务逻辑: MainActivity打开A,A打开B,B把值传回MainActivity.适用在多个Activity中回传值. 实例:微信中选择国家-->省份-->城市的实现 实现方式分析 ...

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

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

  3. 从零开始学android开发-详细谈谈intent的startActivityForResult()方法

    1.两种实现activity跳转的方法 实现activity的跳转主要有两种方法,startActivity()和startActivityForResult();例如activity A跳转到act ...

  4. android fragment 的用法以及与activity的交互和保存数据的方法,包括屏幕切换(转载)!

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 1.管理Fragment回退栈 类似与Android系统为Acti ...

  5. android开发源代码分析--多个activity调用多个jni库的方法

    android开发源代码分析--多个activity调用多个jni库的方法 有时候,我们在开发android项目时会遇到须要调用多个native c/jni库文件,下面是本人以前实现过的方法,假设有知 ...

  6. android 关闭多个或指定activity

    打开了.activityA,B,C,D,...然后到E一起关闭前面所有activity(转自:http://blog.csdn.net/lengguoxing/article/details/4214 ...

  7. Android四大组件之Activity详解——传值和获取结果

    废话不多说,先来看效果图 项目源码: http://download.csdn.net/detail/ginodung/8331535 程序说明: 在MainActivity中输入用户名和密码,然后提 ...

  8. Android之startActivityForResult的使用

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

  9. Android Small插件化框架解读——Activity注册和生命周期

    通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...

随机推荐

  1. vba用http发送xml所需技术

    1.代理(invoke) CallByName 函数 •执行一个对象的方法,或者设置或返回一个对象的属性. •语法 •CallByName(object, procname, calltype,[ar ...

  2. VS2005 命令窗口的使用

    转自:http://www.cnblogs.com/RobotH/archive/2008/05/29/1209856.html 命令”窗口用于直接在 Visual Studio 集成开发环境 (ID ...

  3. 解决java中对URL编码的问题

    首先查看javascript中的encodeURI和encodeURLComponent方法的区别. encodeURI:不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行 ...

  4. 【阿里云产品公测】在Laravel4框架中使用阿里云ACE的缓存服务

    作者:阿里云用户dvbhack 受论坛排版和格式限制,这篇帖子的格式不是很利于阅读,如果你看帖子觉得不那么舒服,可以看我发表在自己博客上的原文:http://www.ofcss.com/2014/04 ...

  5. jsp中调用getOutputStream()产生冲突

    再用jsp进行图片的生成的时候,例如一些验证码,比例图的时候,在对图片进行输出调用 getOutputStream() 的时候会报该方法已经被调用的冲突. 例如如下的程序: <%@ page c ...

  6. hibernate中session的获取使用以及其他注意事项

    hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行 ...

  7. Win10环境下使用VS2015编译PJProject

    一.pjproject源码下载 下载地址:http://www.pjsip.org/ 二.编译之前 1.pj配置,通常直接复制并重命名config_site_simple.h为config_site. ...

  8. codeforces 434A A. Ryouko's Memory Note(数学)

    题目链接: A. Ryouko's Memory Note time limit per test 1 second memory limit per test 256 megabytes input ...

  9. codeforces 676A A. Nicholas and Permutation(水题)

    题目链接: A. Nicholas and Permutation time limit per test 1 second memory limit per test 256 megabytes i ...

  10. 转VS快捷键

    “文本操作”快捷键 命令名 快捷键 说明 编辑.折叠到定义 Ctrl + M,Ctrl + O 自动确定在代码中创建区域的逻辑边界(如过程),然后隐藏它们. 编辑.注释选定内容 Ctrl + K,Ct ...