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

Android 当用户选择语言时,如何更改应用程序的语言?,android,multilingual,idioms,multiple-languages,Android,Multilingual,Idioms,Multiple Languages,当用户选择语言时,如何更改应用程序的语言 我想这样做: 但是,我不想更改textView的语言,而是想创建一个带有语言名称的按钮,当用户单击该按钮时,它会转到已翻译的第二个页面。我已经用这些语言创建了新的值,但想不出一个代码可以用这些字符串打开另一个页面。有人能帮我吗,PLSSS?我建议在第一个活动中将语言名称作为额外的意图传递,并在第二个活动中获取它,并相应地更新语言。考虑下面的 public class MainActivity extends AppCompatActivity {

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

我想这样做:


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

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

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);
    } 
}

希望这有帮助。

使用本地化来实现这一点

       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);

你可以从“我不想使用位置”中学习,因为用户必须选择应用程序的语言,所以你想让用户选择应用程序的语言,而无需更改其手机的语言。如果我使用location,应用程序将自动翻译(这不是我想要的)。我的想法是创建4个按钮(对应于4种语言),当用户单击它们时,它将转到已翻译的第二个页面。