我如何检测我的电话语言是否已更改,例如可以通知我们的facebook应用程序: please wait, we preparing your language
我用myString = Locale.getDefault().getDisplayLanguage();在我的onCreate()
在我的 onCreate()
@Override
public void onCreate(Bundle savedInstanceState) {
String myString = Locale.getDefault().getDisplayLanguage();
if(myString.equals("en"){
ProgressDialog progressDialog = new ProgressDialog(getApplicationContext());
progressDialog.setMessage("Please wait, we preparing your language");
progressDialog.show();
/*
it will dismiss until the language has been prepared
*/
}else{
//do nothing
}
}
}
Run Code Online (Sandbox Code Playgroud)
请给我建议,我仍在学习,会努力的。谢谢。
将广播侦听器设置为:ACTION_LOCALE_CHANGED
由于“区域设置代表语言/国家/地区/变体组合。区域设置用于更改数字或日期等信息的呈现方式,以适应它们所描述的地区的惯例。”
http://developer.android.com/reference/java/util/Locale.html
您可以使用:ACTION_LOCALE_CHANGED
这里是一个例子:
private BroadcastReceiver mLangReceiver = null;
protected BroadcastReceiver setupLangReceiver(){
if(mLangReceiver == null) {
mLangReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do what you want
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
registerReceiver(mLangReceiver, filter);
}
return mLangReceiver;
}
Run Code Online (Sandbox Code Playgroud)
Locale.getDefault().getLanguage();
Run Code Online (Sandbox Code Playgroud)
您可以使用它来获取类似“en”格式的语言。
Locale.getDefault().getDisplayLanguage();返回语言名称,例如“English”而不是“en”。
这也很有用:https ://stackoverflow.com/a/34265899/5515972
| 归档时间: |
|
| 查看次数: |
4980 次 |
| 最近记录: |