按下按钮,我的Android应用程序中的本地化?

时间:2014-07-25 04:27:23

标签: android button android-activity localization textview

我有一个Android应用程序,我有不同的活动,在那些活动中,我有不同的文本视图。我有两个语言的按钮,一个用于英语,另一个用于中文。现在,我希望用户按中文后立即用其他语言更改所有文本视图。

这是我的一项活动......

public class AndroidLocalize extends Activity {
 TextView tv;
 Button b1,b2;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.textView1);
        b1 = (Button) findViewById(R.id.button1);
        b1.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {
                Locale locale = new Locale("en"); 
                Locale.setDefault(locale);
                Configuration config = new Configuration();
                config.locale = locale;
                getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
                tv.setText(R.string.greet);
            }
        });
        b2 = (Button) findViewById(R.id.button2);
        b2.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                Locale locale = new Locale("hi"); 
                Locale.setDefault(locale);
                Configuration config = new Configuration();
                config.locale = locale;
                getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
                tv.setText(R.string.greet);
            }
        });

    }

我能够在同一个活动中点击按钮语言,现在我想在另一个活动中使用语言。这是我的另一项活动..

public class Laanguage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.language);
    TextView tv;
    tv = (TextView) findViewById(R.id.textView2);
}

2 个答案:

答案 0 :(得分:0)

因此,您可以分别在主要活动和子活动中使用 Intent的 putExtra getExtra 方法。

答案 1 :(得分:0)

您应该将所选语言保存到SharedPreference并在每个Activity的onCreate中保存语言并相应地更改TextView。

public class Statics {
    public static final String LANGUAGES_PREFS = "MyLanguagesPrefs";
}

当用户将语言更改为时,请说英语:

SharedPreferences language = getSharedPreferences(Statics.LANGUAGES_PREFS, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = language.edit();
editor.putString("language", "English");

在每个活动的onCreate中:

SharedPreferences language = getSharedPreferences(Statics.LANGUAGES_PREFS, Context.MODE_PRIVATE);
String language = language.getString("language", "");
// Change the TextViews

详细了解SharePreferences