簡體   English   中英

Android-更改語言環境(語言)

[英]Android - Change Locale (Language)

我正在嘗試添加語言控制器,這意味着更改應用程序的語言。

我添加了4個標記(ImageView),每當我按下所需的標記時,我都希望應用程序更改該標記所依賴的語言。

主菜單

這些應用程序最初是英語,當我按丹麥語falg時,語言會切換為丹麥語,但是每當我想改回英語時,都不會發生任何事情。

我已經在自己的value文件夾中制作了幾個strings.xml文件

value-en/strings.xml
value-dk/strings.xml

方法更改語言:

english.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Locale locale = new Locale("en");
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getResources().updateConfiguration(config,getResources().getDisplayMetrics());
            setContentView(R.layout.activity_main);
    }
});

english是我的ImageView變量

我找到了解決方案。

為了將onClickListener()保存在其他組件上,我需要刷新活動,如下所示:

重新開始活動

我只是簡單地采用了以下方法:

//Restarts the activity after changing the languagse
private void RestartActivity(){
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

每當我更改語言時,我都會運行該方法:

english.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Locale locale = new Locale("en");
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getResources().updateConfiguration(config,getResources().getDisplayMetrics());
        setContentView(R.layout.activity_main);
        RestartActivity(); //Run the method as the last thing
    }
});

由於某些原因,聽眾看不到mto停留,但是此解決方案對我有用。

我測試了下面的代碼,並且按我的考慮工作。 選中此選項將對您有所幫助。 在您的點擊監聽器上調用此方法,並將區域設置字符串作為參數傳遞。

私人無效setDeviceDefaultLanguage(String languageToLoad){

    Locale locale = new Locale(languageToLoad);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getResources().updateConfiguration(config,
            getResources().getDisplayMetrics());
    Intent i = getBaseContext().getPackageManager()
            .getLaunchIntentForPackage(getBaseContext().getPackageName());
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM