• 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();  
                }  
            });           
        }  
    }  
     
  • 相关阅读:
    对List实现分页
    笔记2022.05.26
    mybatis 时区设置成UTC后time不能用字符串进行比较
    SAP笔记abap 跳过SAP Access Key 方法
    LOOP GROUP BY 分组循环的使用方法小栗子
    SAP小技巧 双LOOP循环的性能优化
    SAP Shared Memory Objects在不同会话不同ABAP程序中传输数据示例
    转:abap中 跨session传递数据export database
    SQL server 把多条记录查找结果合并成一条记录 L
    linux 实现cp命令递归复制
  • 原文地址:https://www.cnblogs.com/niray/p/3857277.html
Copyright © 2020-2023  润新知