java - Android:初始化一些可以在项目中任何地方使用的字符串

标签 java android

在我的 Android 应用程序中,当我登录应用程序时,我会收到一组字符串,我使用共享首选项保存这些字符串。

这些字符串只不过是整个应用程序中必须分配给 TextView 的文本、EditText 的提示等。

例如。假设我的应用程序有 4 个 Activity 。每个 Activity 有 10 个标签/TextView。因此,完全登录后,我将收到 40 个字符串,并根据某种逻辑将其存储在共享首选项中。我的问题是有没有一种方法可以在某处声明 40 个字符串并在登录时初始化(而不是存储在共享首选项中)。我必须能够在整个应用程序中使用这个字符串吗?实现这一目标的最佳方法是什么?

提前致谢。

最佳答案

您可以通过扩展android.app.Application来实现这一点

public class MyApplication extends Application {

    private HashMap<String, String> variables = new HashMap<>();

    public String getVariable(String key) {
        return variables.get(key);
    }

    public void setVariable(String key, String value) {
        variables.put(key, value);
    }
}

并在 list 中

<application 
  android:name="MyApplication" 
  android:icon="@drawable/icon" 
  android:label="@string/app_name">
    ....
</application>

并在您想要获取变量的 Activity 中执行此操作

// set variable
((MyApplication) this.getApplication()).setVariable("key1", "value1");
// get variable
String value1 = ((MyApplication) this.getApplication()).getVariable("key1");

关于java - Android:初始化一些可以在项目中任何地方使用的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35171642/

相关文章:

java - Jackson/Scala 不可变案例类 : parsing a class depending on other value in JSON

java - HTTP 状态 500 - 权限被拒绝

android - 如何在android中为不同屏幕尺寸的动画创建xml文件

android - 参数类型 'Object?' 不能分配给参数类型 'int'

Android:编译要在可绘制文件夹之外使用的 9 补丁文件?

java - 显示下一个数据库条目

java - 使用 Tomcat 时无法写入文件

java - 如何绘制一条正确指向屏幕角落图像的线

java - Gradle 项目刷新错误 : (The filename, 目录名,或者卷标语法不正确)

java - Android 后退按钮不适用于对话框