Android 按钮主动切换语言不生效

问题描述:创建了一个按钮用于切换中英文,点击按钮刷新了应用但语言没有切换.修改系统语言和切换语言.

解决过程:因为语言确实能切换,所以主要考虑按钮切换功能是否有问题.自己首先想的是语言总是跟着系统语言,是否是因为config中设置语言的时候出了问题.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
    config.setLocale(getLocale(language))
} else {
    config.locale = getLocale(language)
}

将其中自己写的方法getLocale修改为Locale.ENGLISH后还是不生效,在getLocale中打上log发现确实执行了,推断问题不是发生在这处.之后因为看到updateConfiguration被废弃了考虑版本原因,修改后发现也没什么作用.后来搜百度发现可能是导入的Context的有问题.

Android7.0及之后版本,使用了LocaleList,Configuration中的语言设置可能获取的不同,而是生效于各自的Context.

因为我的按钮所在布局是定义在Fragment中的,然后我把方法实现都写在onActivityCreated中,所以使用了全局定义的Context,只要把Button的实现方法移到onCreate,调用view即可解决.看来全局Context也不是十全十美,另外发现自己遇到与Context的问题好几回了,有机会好好了解一下.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值