zoukankan      html  css  js  c++  java
  • [转]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() 
                }  
            });           
        }  
    }  
  • 相关阅读:
    基础总结深入:数据类型的分类和判断(数据、内存、变量) 对象 函数 回调函数 IIFE 函数中的this 分号
    BOM 定时器 通过修改元素的类来改变css JSON
    事件 事件的冒泡 事件的委派 事件的绑定 事件的传播
    DOM修改 使用DOM操作CSS
    包装类 Date Math 字符串的相关的方法 正则表达式 DOM DOM查询
    数组 call()、apply()、bind()的使用 this arguments
    autocad 二次开发 最小包围圆算法
    win10 objectarx向导在 vs2015中不起作用的解决办法
    AutoCad 二次开发 jig操作之标注跟随线移动
    AutoCad 二次开发 文字镜像
  • 原文地址:https://www.cnblogs.com/xunbu7/p/4982259.html
Copyright © 2011-2022 走看看