在我的 Android 应用程序中,我有一个带有下拉菜单的设置活动,用户可以在其中设置他们的偏好,例如他们的性别。下拉菜单包含多个本地化形式的选项,用德语表示女性、男性和其他选项:“Weiblich”、“Männlich”、“Andere”。
如何将视图中的本地化字符串转换为可以存储在服务器上的内部表示 - 反之亦然,从服务器到本地化字符串的值?
到目前为止,我想出的只是一个硬编码的 if-else 语句,这似乎是个坏主意:
private String getSelectedGender() {
String selectedGender = genderSpinner.getSelectedItem().toString();
if (selectedGender.equals(getResources().getString(R.string.Female))) {
return "female";
} else if // ...
// ...
}
其他方式相同,从内部表示到视图:
private void setGenderInView(User user) {
String gender = user.getGender();
String localizedGender;
if (gender.equalsIgnoreCase("female")) {
localizedGender = getResources().getString(R.string.Male);
} //...
}
如果我能得到资源的密钥就好了<string name="female">Weiblich</string>
。
我觉得这是本地化应用程序中的一个常见问题,应该有一些通用的解决方案 - 我只是想不出怎么做。