如果语言是英语,那么使用另一个链接,而不是它的德语

时间:2015-07-26 16:30:49

标签: android

if条件如何?

if(Locale.getDefault().equals("English")){
    Log.i("Language","Englisch");
} else if(Locale.getDefault().equals("Deutsch")){
    Log.i("Language","Deutsch");
} 

这不会起作用

2 个答案:

答案 0 :(得分:1)

Locale.getDefault()将返回static Locale个对象,而不是String。因此调用Locale.getDefault().equals("English")将无效。

试试这个:

String language = Locale.getDefault().getLanguage();

if (language.equals("en"))
{
    // Use English link
}
else if (language.equals("de"))
{
    // Use German link
}
  

public String getLanguage()

     

在API级别1中添加

     

返回此Locale或的语言代码   如果没有设置语言,则为空字符串。

或者:

String language = Locale.getDefault().getDisplayLanguage();

if (language.equals("English"))
{
    // Use English link
}
else if (...) { ....
  

public final String getDisplayLanguage()

     

在API级别1中添加等效于

     

getDisplayLanguage(Locale.getDefault())。

Here是其他可能性:

Locale.getDefault().getLanguage()       ---> en      
Locale.getDefault().getISO3Language()   ---> eng 
Locale.getDefault().getCountry()        ---> US 
Locale.getDefault().getISO3Country()    ---> USA 
Locale.getDefault().getDisplayCountry() ---> United States 
Locale.getDefault().getDisplayName()    ---> English (United States) 
Locale.getDefault().toString()          ---> en_US
Locale.getDefault().getDisplayLanguage()---> English

文档here

答案 1 :(得分:1)

  1. Locale.getDefault会返回Locale,而不是String。如果您想了解有关该区域设置的更多信息,请在getLanguage上致电getCountryLocale。查找语言和国家/地区的ISO代码。
  2. 通常,在android中你用不同的资源来解决这个问题。在res/values-en/res/values-de/下,您可以定义特定于语言的字符串。