有时候我们需要把A activity提交数据给B  activity处理,然后把结果返回给A

这种方式在很多种情况需要用到,比如我应用的程序需要有拍照上传的功能。

一种解决方案是  我的应用程序 〉调用系统相机〉拍照〉关闭系统相机〉返回拍照后的照片到我的应用程序

启动一个ForResult的意图:

Intent intent = new Intent(MainAcitvity.this,
      RequestActivity.class);
    //发送意图标示为REQUSET=1
    startActivityForResult(intent, REQUSET);

B Activity处理数据:

Intent intent=new Intent();

intent.putExtra(KEY_USER_ID, et01.getText().toString());
    intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
setResult(RESULT_OK, intent);
 finish();

那么startActivityForResult如何使用呢:

  1. package com.cn.activityresult.demo;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11.  
  12. public class MainAcitvity extends Activity {
  13.  
  14. private Button btn01;
  15. private TextView tv01;
  16. public static final int REQUSET = 1;
  17.  
  18. @Override
  19. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  20. // TODO Auto-generated method stub
  21. super.onActivityResult(requestCode, resultCode, data);
  22. //requestCode标示请求的标示 resultCode表示有数据
  23. if (requestCode == MainAcitvity.REQUSET && resultCode == RESULT_OK) {
  24. String str = "账号"
  25. + data.getStringExtra(RequestActivity.KEY_USER_ID) + "\n"
  26. + "密码"
  27. + data.getStringExtra(RequestActivity.KEY_USER_PASSWORD);
  28. tv01.setText(str);
  29. }
  30. Toast.makeText(
  31. this,
  32. "requestCode=" + requestCode + ":" + "resultCode=" + resultCode,
  33. Toast.LENGTH_LONG).show();
  34. }
  35.  
  36. /** Called when the activity is first created. */
  37. @Override
  38. public void onCreate(Bundle savedInstanceState) {
  39. super.onCreate(savedInstanceState);
  40. setContentView(R.layout.main);
  41. btn01 = (Button) findViewById(R.id.btn01);
  42. tv01 = (TextView) findViewById(R.id.tv01);
  43. btn01.setOnClickListener(new OnClickListener() {
  44.  
  45. @Override
  46. public void onClick(View v) {
  47. // TODO Auto-generated method stub
  48. Intent intent = new Intent(MainAcitvity.this,
  49. RequestActivity.class);
  50. //发送意图标示为REQUSET=1
  51. startActivityForResult(intent, REQUSET);
  52. }
  53. });
  54.  
  55. }
  56. }
  1. import android.app.Activity;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.Button;
  7. import android.widget.EditText;
  8.  
  9. public class RequestActivity extends Activity {
  10.  
  11. private Button btn01;
  12. private EditText et01;
  13. private EditText et02;
  14. public static final String KEY_USER_ID="KEY_USER_ID";
  15. public static final String KEY_USER_PASSWORD="KEY_USER_PASSWORD";
  16.  
  17. /** Called when the activity is first created. */
  18. @Override
  19. public void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.request_activity);
  22. btn01=(Button)findViewById(R.id.btn01);
  23. et01=(EditText)findViewById(R.id.et01);
  24. et02=(EditText)findViewById(R.id.et02);
  25.  
  26. btn01.setOnClickListener(new OnClickListener() {
  27.  
  28. @Override
  29. public void onClick(View v) {
  30. // TODO Auto-generated method stub
  31. Intent intent=new Intent();
  32. intent.putExtra(KEY_USER_ID, et01.getText().toString());
  33. intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());
  34. setResult(RESULT_OK, intent);
  35. finish(); //此处一定要调用finish()
  36. }
  37. });
  38. }
  39. }

[转]startActivityForResult的用法和demo的更多相关文章

  1. startActivityForResult的用法和demo

    [转]startActivityForResult的用法和demo 博客分类:  java 移动开发 有时候我们需要把A activity提交数据给B  activity处理,然后把结果返回给A 这种 ...

  2. Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决

    前提: 1.安装Android Studio(过程略) 2.官网下载OpenCV for Android 网址:http:opencv.org/downloads.html 我下载的是下图的版本 3. ...

  3. 常用算法和Demo(Java实现)(持续更新)

    源码地址:https://github.com/zwxbest/Demo 1.顺序存储和单向链表,双向链表,循环链表的增删查改 https://github.com/zwxbest/Demo/tree ...

  4. Android下高斯模糊的算法和demo

    采用纯java和RenderScript两种方式来做高斯算法. 也可以用NDK来做,想试试的可以参考: http://stackoverflow.com/questions/2067955/fast- ...

  5. Jpa 语法和 demo

    转 http://www.cnblogs.com/jiangxiaoyaoblog/p/5635152.html 参考资料   https://www.w3cschool.cn/java/jpa-qu ...

  6. 为duilib的MenuDemo增加消息响应,优化代码和显示效果

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/38253297 第一部分 我在前一段时间研究了怎么制作duilib的菜单, ...

  7. MVC文件上传与下载

    MVC文件上传与下载 MVC文件上传与下载 想想自己从毕业到工作也有一年多,以前公司的任务的比较重,项目中有的时候需要用到什么东西都去搜索一下,基础知识感觉还没有以前在学校中的好.最近开始写博客,真的 ...

  8. java 与大数据学习较好的网站

    C# C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!https://www.cnblogs.com/doforfuture/p/6293926.html ...

  9. [blockchain-035]eos的部署安装智能合约

    0.参考资料 https://github.com/EOSIO/eos/wiki 1. eos的github地址 https://github.com/EOSIO/eos 2.下载eos源码 git ...

随机推荐

  1. Gitlab命令行指令

    Git global setup git config --global user.name "lh" git config --global user.email "l ...

  2. storm配置

    配置 Storm 有大量配置项用于调整 nimbus.supervisors 和拓扑的行为.有些配置项是系统级的配置项,在拓扑中不能修改,另外一些配置项则是可以在拓扑中修改的. 每一个配置项都在 St ...

  3. 不创建类将json数据转换

    一般,取到json数据之后,都会将json数据转换为对象,通过属性取得里面的属性值,这样做可以很好地利用vs的智能提示,让开发更轻松,但是代价就是,你需要手动的创建json数据相对应的类. 也有其他方 ...

  4. UILabel设置富文本格式显示

    实例化方法和使用方法 实例化方法: 使用字符串初始化 - (id)initWithString:(NSString *)str; 例: NSMutableAttributedString *Attri ...

  5. UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版

    软件名称:UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版软件类别:汉化软件运行环境:Windows软件语言:简体中文授权方式:免费版软件大小:635 KB软件等级:整理时间:201 ...

  6. ControlTemple样式

    1.TextBox 样式 1.1 style <Window.Resources> <Style x:Key="aa" TargetType="{x:T ...

  7. 多态性Polymorphism

    一.多态性的概念:   1.多态:在面向对象方法中一般是这样表述多态性的: 向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法).也可以说,多态性是“一个接口,多种方法”. 2.从 ...

  8. Android:assests和raw的区别

    转自:http://www.cnblogs.com/lianghui66/p/3248636.html ------------------------------------------------ ...

  9. 解决Eclipse无法添加Tomcat服务器的问题

    eclipse配置好以后,如果Tomcat服务器在文件系统的位置发生了变化,则需要重新配置Tomcat服务器,这时会遇到无法设置服务器的问题 即图中框起来的部分无法进行操作,这时需要 关闭Eclips ...

  10. [转]html 移动互联网终端的javascript touch事件,touchstart, touchend, touchmove

    前言 如果我们允许用户在页面上用类似桌面浏览器鼠标手势的方式来控制WEB APP,这个页面上肯定是有很多可点击区域的,如果用户触摸到了那些可点击区域怎么办呢??诸如智能手机和平板电脑一类的移动设备通常 ...