Mis*_* D. 6 java string android if-statement android-studio
我希望我的应用程序检查手机使用的语言.这个if语句应该这样做:
if (Locale.getDefault().getLanguage().equals("en")) {
yourYesResponse = "That is great " + usersName + "!";
}
else if (Locale.getDefault().getLanguage().equals("fr")) {
yourYesResponse = "C\'est bon " + usersName + "!";
}
Run Code Online (Sandbox Code Playgroud)
但即使我的设备设置为法语,它仍然显示英语.这个if语句有什么问题,如果是,那又怎么样?
编辑:谢谢你的帮助.我很感激.
为了获得设备语言,您可以使用:
Locale.getDefault().getDisplayLanguage();
Run Code Online (Sandbox Code Playgroud)
要么,
Locale.getDefault().getLanguage(); //to get usual language code
Run Code Online (Sandbox Code Playgroud)
小智 6
使用 :
Locale.getDefault().getLanguage().contentEquals("en")
Run Code Online (Sandbox Code Playgroud)
在String#equals()不仅比较字符串的内容,而且还会检查其他的对象也是的一个实例String.该方法只比较的内容(字符序列)和不不检查其他对象也是的一个实例.它可以是任何东西,只要它是实现或实例.String#contentEquals() StringCharSequenceStringBuffer
小智 4
您可以通过为每种语言声明一个字符串资源文件来解决这个问题。
创建名为values-fr 和values-en 的资源文件夹,并将名为strings.xml 的文件添加到这两个文件夹中。
value-en 中的 string.xml 文件:
<resources>
<string name="good">That is great </string>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后你像这样加载资源:
yourYesResponse = getResources().getText(R.string.good) + usersName + "!";
Run Code Online (Sandbox Code Playgroud)
尼克更快...
| 归档时间: |
|
| 查看次数: |
8284 次 |
| 最近记录: |