• [转]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如何使用呢:

    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) + "
    "  
                        + "密码"  
                        + 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() 
                }  
            });           
        }  
    }  
  • 相关阅读:
    Linux下修改/设置环境变量JAVA_HOME
    php WNMP(Windows+Nginx+Mysql+php)配置笔记
    jetty
    eclipse 打包
    js 稍微判断下浏览器 pc 还是手机
    mysql 自增长
    mac 终端命令
    KVC,KVO
    Swift
    构造函数,析构函数的区别
  • 原文地址:https://www.cnblogs.com/xunbu7/p/4982259.html
Copyright © 2020-2023  润新知