【问题标题】:How to change the language of the app when THE USER selects the language?当用户选择语言时,如何更改应用程序的语言?
【发布时间】:2017-09-19 05:09:34
【问题描述】:

当用户选择语言时,如何更改应用程序的语言?

我几乎想这样做:http://snowpard-android.blogspot.com.br/2013/03/programmatically-change-language-in.html?google_comment_id=z13isbsazkf3hzea504celo5oy3rjzbyevo0k

但我不想更改 textView 的语言,而是想创建一个带有语言名称的按钮,当用户单击它时,它会转到已翻译的第二页。我已经用这些语言创建了新值,但想不出可以用这些字符串打开另一个页面的代码。谁能帮帮我,好吗?

【问题讨论】:

标签: android multilingual idioms multiple-languages


【解决方案1】:

我建议在第一个活动中将语言名称作为额外的意图传递,并在第二个活动中获取它并相应地更新语言。考虑以下

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // findViewbyId here for button
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, OtherActivity.class);
                intent.putExtra("lang", "fr");
                startActivity(intent);
            }
        });
    }
}

在其他活动中

public class OtherActivity extends AppCompatActivity {

    @Override
    private void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String lang = getIntent().getStringExtra("lang") == null ? getIntent().getStringExtra("lang") : "en";

        // assuming this is the method you have to call to change the language
        changeLang(en);
    } 
}

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    使用本地化来实现这一点。

           String languageToLoad  = "hi"; // change your language her this is for hindi
      Locale locale = new Locale(languageToLoad); 
        Locale.setDefault(locale);
      Configuration config = new Configuration();
       config.locale = locale;
      getBaseContext().getResources().updateConfiguration(config, 
      getBaseContext().getResources().getDisplayMetrics());
     this.setContentView(R.layout.main);
    

    【讨论】:

    • 我不想使用位置,因为用户必须选择应用程序的语言
    • 这正是你想要的
    • 我想让用户选择应用程序的语言,而无需更改手机的语言。如果我使用位置,应用程序将自动翻译(这不是我想要的)。我的想法是创建 4 个按钮(对应于 4 种语言),当用户点击它们时,它会转到已翻译的第二页。跨度>
    猜你喜欢
    • 2012-10-06
    • 2016-12-13
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2015-05-09
    • 2015-06-19
    • 2018-08-09
    • 1970-01-01
    相关资源
    最近更新 更多