Android:初始化一些可以在项目中的任何位置使用的字符串

时间:2016-02-03 08:11:44

标签: java android

在我的Android应用程序中,当我登录应用程序时,我收到一组字符串,我使用Shared Preferences保存。

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

EG。说我的应用程序有4个活动。每个活动都有10个标签/ TextViews。所以完全在登录时我将收到40个字符串,并且我将它存储在基于某些逻辑的共享首选项中。我的问题是,有一种方法可以在某处声明40个字符串并在登录时初始化(而不是存储在共享首选项中)。我必须能够在我的应用程序中使用这些字符串吗?哪种方法最好?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以通过扩展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);
    }
}

并在清单

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

并在您想要获取变量

的活动中执行此操作
// set variable
((MyApplication) this.getApplication()).setVariable("key1", "value1");
// get variable
String value1 = ((MyApplication) this.getApplication()).getVariable("key1");

答案 1 :(得分:1)

android.app.Application:
Base class for those who need to maintain global application state.

对我而言,听起来字符串只是应用程序状态的一部分。创建Application的子类,在AndroidManifest.xml中将该类注册为您的应用程序类并将字符串存储在那里。然后,您可以通过调用getApplication()...

来访问所有活动类中的字符串
相关问题