zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    Web前端笔记和简历模板
    三种 Loading 制作方案
    注册中心之健康检测机制
    HTTPS与加密
    多线程-JUC
    date日期类型
    spring配置文件约束
    Tomcat web.xml 中的listener、 filter、servlet 加载顺序
    java 日志框架总结
    mysql常用命令
  • 原文地址:https://www.cnblogs.com/fangg/p/5566256.html
Copyright © 2011-2022 走看看