有时候我们需要把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如何使用呢:

package com.cn.activityresult.demo;  

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; public class MainAcitvity extends Activity { private Button btn01;
private TextView tv01;
public static final int REQUSET = 1; @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
//requestCode标示请求的标示 resultCode表示有数据
if (requestCode == MainAcitvity.REQUSET && resultCode == RESULT_OK) {
String str = "账号"
+ data.getStringExtra(RequestActivity.KEY_USER_ID) + "\n"
+ "密码"
+ data.getStringExtra(RequestActivity.KEY_USER_PASSWORD);
tv01.setText(str);
}
Toast.makeText(
this,
"requestCode=" + requestCode + ":" + "resultCode=" + resultCode,
Toast.LENGTH_LONG).show();
} /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn01 = (Button) findViewById(R.id.btn01);
tv01 = (TextView) findViewById(R.id.tv01);
btn01.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainAcitvity.this,
RequestActivity.class);
//发送意图标示为REQUSET=1
startActivityForResult(intent, REQUSET);
}
}); }
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText; public class RequestActivity extends Activity { private Button btn01;
private EditText et01;
private EditText et02;
public static final String KEY_USER_ID="KEY_USER_ID";
public static final String KEY_USER_PASSWORD="KEY_USER_PASSWORD"; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.request_activity);
btn01=(Button)findViewById(R.id.btn01);
et01=(EditText)findViewById(R.id.et01);
et02=(EditText)findViewById(R.id.et02); btn01.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
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(); //此处一定要调用finish()
}
});
}
}

[转]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. MVC3+EF4.1学习系列(九)-----EF4.1其他的一些技巧的使用

    上节通过一系列重构 简单的项目就实现了 不过还有些EF的功能没有讲 这节就通过项目 讲讲EF其他的功能与技巧 一.直接执行SQL语句 通常来讲 EF 不用写SQL语句的  但是 在有些场合  比如对生 ...

  2. Java--重载与重写

    父类(Parent): public class Parent { public String name = "parent 父类属性"; public void say(){ S ...

  3. perl版 Webshell存活检测

    原理: 检测url返回状态即可 源码: #!c:\\perl\\bin\\perl.exe use warnings; use strict; use LWP::UserAgent; $| = ; p ...

  4. RPC简介与Thrift框架

    RPC,全称是remote process call,远程过程调用,简单来讲就是调用部署在另一台服务器上的服务或者被部署在另一台服务器上的服务调用.由于各服务部署在不同机器,服务间的调用免不了网络通信 ...

  5. python crypto

    //安装crypto sudo apt-get install python-pip//安装pip命令工具 sudo pip install pycrypto//缺少环境-- sudo apt-get ...

  6. cocoaPods的安装方法

    1.打开终端 2.先升级Gem sudo gem update --system 3.切换cocoapods的数据源 [先删除,再添加,查看] gem sources --remove https:/ ...

  7. CodeFroces--Good Bye 2016-A-New Year and Hurry(水题-模拟)

    A. New Year and Hurry time limit per test 1 second memory limit per test 256 megabytes input standar ...

  8. windows7所有版本

    windows7所有版本迅雷地址下载集合(含32位和64位) Windows7 SP1旗舰版 32位官方原版下载: ed2k://|file|/cn_windows_7_ultimate_with_s ...

  9. 如何在VS2013中显示代码行号

    http://jingyan.baidu.com/article/af9f5a2d2e193543140a4533.html

  10. nfs服务器的建立

    NFS服务器的配置 一.NFS服务器端的配置,即共享发布者 (一)需启动的服务和需安装的软件 1.NFS服务器必须启动两个daemons服务:rpc.nfsd和rpc.mountd   rpc.nfs ...