首页 > 其他分享 >安卓开发学习-向上一个Activity返回数据

安卓开发学习-向上一个Activity返回数据

时间:2024-03-09 21:47:03浏览次数:17  
标签:返回 安卓 Bundle Intent Activity import android TextView

发送请求页面

点击查看代码
package com.android.response;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;

public class RequestActivity extends AppCompatActivity {

    private ActivityResultLauncher<Intent> launcher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_request);

        // 获取布局中的 TextView 和 Button
        TextView data = findViewById(R.id.tv_data);
        Button sendBtn = findViewById(R.id.btn_send);

        // 初始化 ActivityResultLauncher
        launcher = registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                result -> {
                    // 检查活动结果
                    if (result.getResultCode() == RESULT_OK) {
                        Intent dataIntent = result.getData();
                        if (dataIntent != null) {
                            Bundle extras = dataIntent.getExtras();
                            if (extras != null) {
                                // 从返回的数据中提取信息
                                String receivedData = extras.getString("backData");
                                // 在 TextView 中显示接收到的数据
                                TextView receiveTv = findViewById(R.id.tv_back_data);
                                receiveTv.setText(receivedData);
                            }
                        }
                    }
                });

        // 设置按钮的点击事件监听器
        sendBtn.setOnClickListener(e -> {
            // 创建一个 Bundle 对象用于传递数据
            Bundle bundle = new Bundle();
            // 从 TextView 中提取数据,并将其放入 Bundle 中
            bundle.putString("data", data.getText().toString().split(":")[1]);

            // 创建一个 Intent 对象,并将 Bundle 放入其中
            Intent intent = new Intent(this, ResponseActivity.class);
            intent.putExtras(bundle);

            // 使用 ActivityResultLauncher 启动活动
            launcher.launch(intent);
        });
    }
}

接收返回请求界面

点击查看代码
package com.android.response;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class ResponseActivity extends AppCompatActivity {

    // 预设的返回数据
    private static final String backData = "你好未来!";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_response);

        // 获取布局中的 TextView
        TextView receiveTv = findViewById(R.id.tv_receive);
        // 获取从启动 Intent 中传递过来的数据
        Bundle extras = getIntent().getExtras();

        // 检查是否有传递过来的数据
        if (extras != null) {
            // 从 Bundle 中提取数据
            String receivedData = extras.getString("data");
            // 在 TextView 中显示接收到的数据
            receiveTv.setText(receivedData);
        }

        // 获取布局中的返回按钮
        Button backBtn = findViewById(R.id.btn_back);
        // 设置返回按钮的点击事件监听器
        backBtn.setOnClickListener(e -> {
            // 创建一个新的 Intent
            Intent intent = new Intent();
            // 创建一个 Bundle 对象用于存储返回的数据
            Bundle bundle = new Bundle();
            // 将预设的返回数据放入 Bundle
            bundle.putString("backData", backData);
            // 将 Bundle 放入 Intent
            intent.putExtras(bundle);
            // 设置返回结果为成功,并将带有数据的 Intent 返回给上一个活动
            setResult(Activity.RESULT_OK, intent);
            // 结束当前活动
            finish();
        });
    }
}

image
image
image

标签:返回,安卓,Bundle,Intent,Activity,import,android,TextView
From: https://www.cnblogs.com/jc123blogs/p/18063379

相关文章

  • 函数返回数组指针 看不太懂
    有三种方法1.声明一个返回数组指针的函数int(*func(inti))[10];func(inti)表示调用func函数所需要一个int类型的实参。(*func(inti))意味着我们可以对函数调用的结果执行解引操作。//意思就是函数调用的结果的是个指针。(*func(inti))[10]......
  • 安卓开发学习-Intent携带数据
    发送数据页面点击查看代码packagecom.android.messaging;importandroid.annotation.SuppressLint;importandroid.content.Intent;importandroid.os.Bundle;importandroid.widget.Button;importandroid.widget.TextView;importandroidx.appcompat.app.AppCompatA......
  • 淘宝天猫获得淘宝商品评论 API 返回值说明 (商品详情店铺)
    item_review-获得淘宝商品评注册开通taobao.item_review公共参数名称 类型 必须 描述key String 是 调用key(必须以GET方式拼接在URL中)secret String 是 调用密钥api_name String 是 API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cache String ......
  • Delphi11安装Android安卓SDK
    由于Google的AndroidSDK不再允许其他程序分发。Delphi11安装后,默认是没有Android安卓SDK的,在默认安装路径的情况下,在C:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK-2525-22.0.46141.0937\目录下面,只有最基本的安卓SDK的命令行工具,我们可以使......
  • Activity 流程模型导入导出-activity流程模型导入导出
    环境版本springboot:2.5.6activity:5.22.0导出@RequestMapping("/exportModelXml")publicvoidexportModelXml(HttpServletResponseresponse,@RequestParamStringmodelId)throwsIOException{Modelmodel=repositoryService.getMode......
  • 关于安卓连接自带的数据库方法
    安卓连接自带的SQLLite方法和搭建web网站连接数据库操作基本没有区别。唯一的区别就是在web网站的时候我们在数据库中创建表都是在可视化软件中进行的,而安卓开发则需要自己去写SQL语句去创建一个新的表。接下来就简单演示一下这个过程。第一步自然是新建一个安卓项目,这里不在进行......
  • 用promise定义方法时如何避免 自执行/周期影响 多次执行问题:将promise作为方法的回调
    如果你在Promise内部定义了异步操作,并希望避免Promise在创建时自动执行,你可以将这些异步操作封装在一个函数内,并在需要时调用该函数。这样可以确保在适当的时机执行异步操作,而不是在Promise对象创建时或周期更新时(会重新定义变量)立即执行。 以下是一个示例,演示了如何在Promise......
  • 关于安卓开发远程连接mysql数据库2
    安卓开发远程连接数据库方式2:通过发送请求到web中间层实现对数据库的增删改查操作。第一步需要给安卓程序添加上网络权限,在安卓项目中的配置文件中加上代码<uses-permission android:name="android.permission.INTERNET"/>语句用于获得访问网络的权限第二步添加Retrofit+GSON......
  • burpsuit app 抓包 安卓7.0以上证书制作
    burpsuitapp抓包以及安卓7.0以上证书制作前言:今天在使用某校园跑脚本时需要上传token,只能抓包获取,但发现安卓7.0以上的证书不能直接导入,故记录一下制作以及导入方式。首先我们要从burpsuite的客户端或者官方网页获得证书,将证书放在kali中或其他带有openssl的linux系统中,对其......
  • 【Python基础】Python 函数返回多个值和函数注解
    [本文出自天外归云的博客园]Python函数返回多个值和函数注解在Python中,函数可以返回多个值。这在某些情况下很有用,因为它允许函数一次性返回多个相关联的结果。Python使用元组(tuple)来实现这一特性。函数返回多个值示例下面是一个示例函数,它接受一个整数和一个字符串作为......