java - Android - 跨多个 Activity 传递变量

标签 java android

必须有一种更清晰的方法来在 Activity 之间传递数据/变量 目前我有 4 项 Activity (完成后我可能会得到 12/14

这些 Activity 中的每一个都是与 Microsoft 数据库的通信。执行各种任务、查找、检查、数据更改等 一切正常,但我发现每次创建 Intent 来启动新 Activity 时,我都必须复制并粘贴 intent.putExtra() 负载以在每个 Activity 之间传递。 它只是看起来很困惑而且没有必要。

有更好的方法吗?在 PHP 中,我会将所有这些包装在一个函数中,并且无需一遍又一遍地重复相同的代码。

如果不放入 Intent 或将其存储在共享 Activity 中,我似乎无法在 Activity 之间共享数据 (我是 Java/Android 开发的新手,但我将 Activity 视为一个新程序,而不是应用程序中的新页面,因为它的结构方式和传递/共享数据的能力)

最佳答案

首先,您不应该直接在 Activity 中这样做。使用 Intent 工厂模式。例如:

class MyActivity {
    static Intent createIntent(Context context, param1, param2, param3...) {
       Intent intent = new Intent(context);
       intent.setExtra("param1", param1);
       ...
       return intent;
}

这样,调用代码只需要调用这个函数,所有关于额外内容及其名称的知识都会消失。

现在,如果您的所有 Activity 都有通用数据(例如 session 数据),那么其他解决方案(例如全局变量或注入(inject)框架)可能适用。但如果其数据仅用于该单独的 Activity ,则它会成为该 createIntent 函数的参数之一。

关于java - Android - 跨多个 Activity 传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59217228/

相关文章:

java - Reader 类中的 read(char[] cbuf, int off, int len) 的困惑

java - Android Studio - Gradle 同步错误

android - 数据从自定义适配器更改后刷新 ListView

android - Material 主题工具栏上的渐变背景

java - 如何在运行时将 rhino/javascript 文件编译为 java 的 .class 字节码

java - Eclipse 不会相信我有 Maven 2.2.1

java - 如何在没有系统权限的情况下在android 7.0的NDK中打开相机

java - 迁移到 Android Studio 时进行转换

android - 在 webview android 中加载 URL 的问题

android - 更改查询时如何使用 FirebaseUI 刷新 FirebaseAdapter 中的数据?