在Android App里实现语言切换

来源:互联网 发布:grub4dos 引导linux 编辑:程序博客网 时间:2024/06/05 10:40
  1. 在res底下建立 values-zh-rCN / string.xml 和 values-en-rUS / string.xml
  2. 在 activity 里使用 context.getResources().getString(R.string.xxx)
  3. 创建BaseActivity如下,所有的activity 继承BaseActivity:
public class BaseActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        EventBus.getDefault().register(this);        changeLang(BleApplication.getStringFDKPref("lang", "ch"));    }    public static void changeLang(String lang){        Resources resources = BleApplication.getInstance().getResources();        DisplayMetrics dm = resources.getDisplayMetrics();        Configuration config = resources.getConfiguration();        // 应用用户选择语言        // 注意:这里如果选择美式英语,一定要用Locale.US,不能用Locale.English,否则就会发生 Resource NotFoundException        config.locale = (lang.equals("ch") ? Locale.SIMPLIFIED_CHINESE : Locale.US);        resources.updateConfiguration(config, dm);    }    @Subcriber    private void handleLangChangedMsg(LangChangedMsg langChangedMsg){        recreate();    }}

4.. 在选择具体国际语言时, 抛出EventBus Message 即可.

0 0
原创粉丝点击