Tom*_* F. 4 java android locale android-activity
我正在做一个多语言的应用程序.我理解string.xml的概念,即将应用程序语言设置为手机的默认语言.有什么方法可以覆盖这个吗?例如,如果我在西班牙使用西班牙语手机,但我仍然希望使用英语应用程序?
aro*_*ire 15
您可以使用简单的功能以编程方式更改应用程序的语言(区域设置).您只需要实现一个类似于下面接收字符串作为参数的方法(例如英语为'en',西班牙语为'es'),您可以在其中配置应用的区域设置并刷新当前活动反映变化.在您再次手动更改之前,不会更改您应用的区域设置.
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, AndroidLocalize.class);
startActivity(refresh);
finish();
}
Run Code Online (Sandbox Code Playgroud)
确保导入以下包:
import java.util.Locale;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.DisplayMetrics;
import android.content.res.Resources;
import android.content.res.Configuration;
Run Code Online (Sandbox Code Playgroud)
也可以在活动代码中的清单中添加 android:configChanges="locale|orientation"
| 归档时间: |
|
| 查看次数: |
2492 次 |
| 最近记录: |