关于更改APP语言,我的大致思路是:提供设置和获取APP语言的方法,并在sp中保存,初次默认使用系统语言; APP内设置语言后保存在sp中,摒弃直接重启APP的方法,不立即跳转页面并且刷新当前页面,跳转到对应的页面再根据真正的设置结果进行相应界面的刷新;此处注意,跳转之后判断是否真正进行了语言的切换,避免页面的重复刷新,这样实现灵活切换APP语言,给用户一个更好的体验效果。 更改系统语言后刷新各个activity的方法技巧:
1、涉及listview或者recyclerview时,可以使用用notifyDataSetChanged(),其他情况用以下方法:
2、刷新当前activity界面数据:
//在activity类下新增一个refresh()方法:
public void refresh() {
onCreate(null);
}
//刷新另一个activity界面数据:
public Bundle s;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.s = savedInstanceState;
}
@Override
protected void onResume() {
super.onResume();
onCreate(null);
}