startActivityForResult的用法和demo

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

 

Java代码  收藏代码
  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. }  

 

Java代码  收藏代码
  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.           
  27.         btn01.setOnClickListener(new OnClickListener() {  
  28.               
  29.             @Override  
  30.             public void onClick(View v) {  
  31.                 // TODO Auto-generated method stub  
  32.                 Intent intent=new Intent();  
  33.                 intent.putExtra(KEY_USER_ID, et01.getText().toString());  
  34.                 intent.putExtra(KEY_USER_PASSWORD, et02.getText().toString());  
  35.                 setResult(RESULT_OK, intent);  
  36.                 finish();  
  37.             }  
  38.         });           
  39.     }  
  40. }  

 

posted on   小小鸟儿!  阅读(353)  评论(0编辑  收藏  举报

编辑推荐:
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
阅读排行:
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)
· 卧槽!C 语言宏定义原来可以玩出这些花样?高手必看!
· langchain0.3教程:从0到1打造一个智能聊天机器人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示