Android切換app語言

效果圖如下:

主要代碼:

/**
 * 修改app語言
 *
 * @param type 語言類型  
 */
public static void changeAppLanguage(int type) {
    Resources resources = UIUtils.getContext().getResources();  // 獲得res資源對象

    Configuration config = resources.getConfiguration();  // 獲得設(shè)置對象

    DisplayMetrics dm = resources.getDisplayMetrics();  // 獲得屏幕參數(shù):主要是分辨率,像素等。

    if(type== Constants.LANGUAGE_CHINESE){
        config.locale = Locale.CHINESE;  // 設(shè)置APP語言設(shè)置為英文
    }else if(type== Constants.LANGUAGE_ENGLISH){
        config.locale = Locale.ENGLISH;  // 設(shè)置APP語言設(shè)置為英文
    }

    resources.updateConfiguration(config, dm);
}

需要一提的是,要界面立即刷新效果,需要重啟界面,在這里需要在選擇語言對話框點擊確定之后把主界面MainActivity和SettingActivity依次關(guān)閉,然后重新啟動,代碼如下:

private void restartActivity() {
    mActivities.get(mActivities.size()-2).finish();
    Intent[] intents = {new Intent(this, MainActivity.class), new Intent(this, SettingsActivity.class)};
    startActivities(intents);
    finish();
}

其中的mActivities是所有Activity的基類BaseActivity中定義的用來保存已開啟的Activity的列表,因為MainActivity是倒數(shù)第二個打開的,所以通過 mActivities.get(mActivities.size()-2)獲取到,然后調(diào)用finish()方法關(guān)閉MainActivity,最后通過startActivitys方法按照順序啟動MainActivity和SettingActivity完成界面的刷新。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容