• 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) + " "  
    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. }  

     

  • 相关阅读:
    c getline
    vim tips
    viksoe.dk UI: Become windowless
    用ls如何实现文件按时间排序查看,谢谢! AIX ChinaUnix.net
    垂直切分大小 : vertical res 30
    commandlinefu.com
    cmake 学习笔记(二) 1+1=2 博客频道 CSDN.NET
    implement split with c++
    分享:spdylay 0.3.8 发布,SDPY 的 C 语言实现
    培乐园《搜索相关性1》—在线播放—优酷网,视频高清在线观看
  • 原文地址:https://www.cnblogs.com/wxmdevelop/p/5282770.html
Copyright © 2020-2023  润新知