android - Activity 中的枚举

标签 android

我无法理解以下内容:在我的本地化应用程序中,我的 Activity 中有一个 Enum ,它存储一些本地化字符串 (R.string.aString),这些字符串是与另一个本地化字符串进行比较。

如果在应用程序中我更改了区域设置,然后返回并启动包含枚举的 Activity ,我发现它的成员与本地化更改之前相同。

这是什么原因?

编辑:

class Settings extends Activity 
{

    public enum SettingPreferenceScreen
    {
        Connection (R.string.Connection , xml_resource_1)
        Legend (R,string.Legend ,xml_resource_2)
        .......

    String key;
    int res;

    SettingPreferenceScreen(String key, int res)
    {....}

    public int getResource (String key)
    {
      for(SettingPreferenceScreen p : SettingPreferenceScreen.values())
        if(key.equals(p.key))
           return p.res;

      return -1;
    }

    }

}

最佳答案

首先,尝试 avoiding Enums当您为 Android 开发时。

其次,我的猜测是 Enum 是在 onCreate() 方法上创建的 您的 Activity 的并且当您第二次打开应用程序时,不会调用该方法。检查Activity's lifecycle .

关于android - Activity 中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230690/

相关文章:

android - 使用android camera intent,获取uri,然后使用uri

android - 通过 USB 从一部安卓手机给另一部手机充电

javascript - 将 token 从 FirebaseAuth 传递到 Android 中的 Google Cast 自定义接收器

android - 无法在 Retrofit 2.0 中解析具有两种不同数据类型的 json

java - 如何以编程方式将布局集成到静态布局(.xml)中?

java - Android SQLite 数据库上的 ORMLite groupByRaw 和 groupBy 问题

Android:DatePicker对话框主题

java - 如何在节点 Firebase 中获得唯一的随机产品?

android - 修改url查询

android - 谷歌播放 : application is not visible with search keyword