• Android_Intent_passValueForResult


    当SecondActivity需要回传参数时:
    1. MainActivity启动SecondActivity时需要调用startActivityForResult()
    并定义请求码
    2. SecondActivity在合适的使用调用setResult()设置返回码和返回的参数
    然后调用finish()结束当前Activity
    3. MainActivity需要重写onActivityResult()捕获SecondActivity返回的结果

    常用的返回码为:
    RESULT_OK 成功
    RESULT_CANCEL 失败
    RESULT_FIRST_USER 用户自定义的返回码
    RESULT_FIRST_USER + 1
    RESULT_FIRST_USER + 2
    ……

    MainActivity:

    package com.example.day06_activity5;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        public void btn_click(View view) {
            Intent intent = new Intent();
            intent.setClass(MainActivity.this, SecondActivity.class);
            // 期待SecondActivity会传递参数回来
            startActivityForResult(intent, 8);
        }
    
        // 重写onActivityResult() 捕获SecondActivity返回的结果
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if(requestCode == 8 && resultCode == RESULT_OK) {
                String name = data.getStringExtra("name");
                int age = data.getIntExtra("age", 0);
                double weight = data.getDoubleExtra("weight", 0.0);
                Toast.makeText(MainActivity.this, 
                        "姓名:" + name + ", 年龄:" + age + ", 体重:" + weight, 
                        Toast.LENGTH_LONG).show();
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
    }

    SecondActivity:

    package com.example.day06_activity5;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    
    public class SecondActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
        }
    
        public void btn_click_return(View view) {
            // 传递参数回去
            // 返回码有如下值:
            // RESULT_OK 成功
            // RESULT_CANCEL 失败
            // RESULT_FIRST_USER 用户自定义的返回码
            Intent data = new Intent();
            data.putExtra("name", "放远");
            data.putExtra("age", 58);
            data.putExtra("weight", 555.5);
            setResult(RESULT_OK, data);
            // 退出当前Activity
            finish();
        }
    }
  • 相关阅读:
    去除 SQL Server 查询结果中的两边空格
    Ubuntu 中安装 Oracle 10g
    不同格式的下拉列表框
    闲来无趣,写了个简单的JavaScript验证码
    Ubuntu 任务前后台调度管理
    C#数据类型转换,Convert
    OleDbType,C#,access 对应数据类型,互相对应
    SQL 将查询出的表当做 value 插入到表中
    asp.net mvc && asp.net 页面跳转
    asp.net mvc 与 asp.net结合(asp.net mvc 技巧)
  • 原文地址:https://www.cnblogs.com/fangg/p/5566256.html
Copyright © 2020-2023  润新知