如何在android APP中设置系统语言
答案:2 悬赏:60 手机版
解决时间 2021-03-08 17:50
- 提问者网友:浩歌待明月
- 2021-03-07 22:09
如何在android APP中设置系统语言
最佳答案
- 五星知识达人网友:不如潦草
- 2021-03-07 23:32
privatevoidsetLanguage(intlanguage){try{Configurationconfig=getResources().getConfiguration();DisplayMetricsdm=getResources().getDisplayMetrics();if(language==Common.LANGUAGE_EN){config.locale=Locale.ENGLISH;}else{config.locale=Locale.SIMPLIFIED_CHINESE;}getResources().updateConfiguration(config,dm);SharedPreferencessp=getSharedPreferences("userinfo",0);SharedPreferences.Editoreditor=sp.edit();editor.putInt("locale",language);editor.commit();}catch(Exceptione){e.printStackTrace();}}
全部回答
- 1楼网友:佘樂
- 2021-03-08 00:50
android app中设置系统语言可以通过反射机制。
private void updatelanguage(locale locale) {
try {
object objiactmag, objactmagnative;
class clziactmag = class.forname("android.app.iactivitymanager");
class clzactmagnative = class.forname("android.app.activitymanagernative");
method mtdactmagnative$getdefault = clzactmagnative.getdeclaredmethod("getdefault");
// iactivitymanager iactmag = activitymanagernative.getdefault();
objiactmag = mtdactmagnative$getdefault.invoke(clzactmagnative);
// configuration config = iactmag.getconfiguration();
method mtdiactmag$getconfiguration = clziactmag.getdeclaredmethod("getconfiguration");
configuration config = (configuration) mtdiactmag$getconfiguration.invoke(objiactmag);
config.locale = locale;
// iactmag.updateconfiguration(config);
// 此处需要声明权限:android.permission.change_configuration
// 会重新调用 oncreate();
class[] clzparams = { configuration.class };
method mtdiactmag$updateconfiguration = clziactmag.getdeclaredmethod(
"updateconfiguration", clzparams);
mtdiactmag$updateconfiguration.invoke(objiactmag, config);
} catch (exception e) {
e.printstacktrace();
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯