android编程语言要变吗,在Android中更改运行时语言

我必须在Android中更改运行时的语言(是的,我知道这不是一个好的行为,但这是一个要求……).

所以我有一个基本课程,每个活动都会从中扩展.该类具有以下功能:

public static void changeLanguage(Context context) {

Resources res = context.getResources();

/*

* Change locale settings in the app.

*/

DisplayMetrics dm = res.getDisplayMetrics();

/*

* Store and load data in this preferences

*/

android.content.res.Configuration conf = res.getConfiguration();

String[] localArray = res.getStringArray(R.array.language_short_array);

if (localArray != null) {

SharedPreferences settings = context.getSharedPreferences(

MyService.APP_ID, MODE_PRIVATE);

conf.locale = new Locale(localArray[settings.getInt(

PREFERED_LANGUAGE_KEY, 0)]);

res.updateConfiguration(conf, dm);

}

}

我将在onCreate中调用此方法:

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

changeLanguage(this);

}

这是超级课程.我的活动从它开始,并首先调用super.onCreate.在此次通话后,他们设置了布局并初始化了他们的设置……

我认为我的代码行会成功.但我有以下问题:有时,活动会改变语言,有时候不会!

如果我在其上设置调试断点并在程序暂停后按下继续,一切正常.所以我认为,在某些情况下,我的应用程序“足够慢”,语言将正确更改,而如果应用程序太快,语言将不会改变…

我的问题有什么解决方案吗?我怎么能确定我的语言会随时改变?

非常感谢!

编辑:这是一个从我的超类扩展的类的示例

public class MainMenuActivity extends BaseActivity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_start);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值