我无法理解以下内容:在我的本地化应用程序中,我的 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/