我有这个Android应用程序本地化了几种语言.如果存在设备区域设置的相应字符串,则应用程序会自动显示该字符串.到现在为止还挺好.
接下来,我想让应用程序的用户切换到我提供的语言之一.我可以通过覆盖默认语言环境来完成此操作.这里也没问题.
这里的问题:我有没有办法在语言列表中提供一个"默认"选项,允许用户恢复默认的自动语言环境?请考虑以下情形:
1.设备的区域设置设置为德语.App以德语显示所有内容.
2.用户希望应用程序使用法语,因此他们会从应用程序内部更改语言,因此应用程序会转换为法语.
3.同一用户将设备的语言环境更改为西班牙语.应用程序仍然是法语.
4.他们选择"默认"设置.应用程序更改为西班牙语,并在更改语言环境时不断更改.
如果这不能自动执行,那么有没有办法让我获得设备范围的区域设置,以便我可以设置我的应用程序,如果我选择了"默认"选项?
Pro*_*man 16
我通过在第一次运行应用程序时存储现有设置来解决此问题(在对默认语言环境进行任何更改之前).在我的应用程序第一次运行时才运行的块中,我调用:
m_preferences.edit().putString(
MyConstants.PREFERENCE_SYSTEM_LANGUAGE,
getResources().getConfiguration().locale.getLanguage()
).commit();
Run Code Online (Sandbox Code Playgroud)
后来,当我需要检索它时:
languageToLoad = m_preferences.getString(
MyConstants.PREFERENCE_SYSTEM_LANGUAGE,
MyConstants.LANGUAGE_DEFAULT);
Run Code Online (Sandbox Code Playgroud)
更改语言时,我将其保存在另一个首选项中并处理视图的更新.
编辑:经过多一点探索后,我找到了系统设置.我转而使用它,而不是上面的代码.
Resources.getSystem().getConfiguration().locale.getLanguage();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3727 次 |
| 最近记录: |