永发信息网

如何在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(); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯