【发布时间】:2015-08-30 13:06:05
【问题描述】:
我有一个 Spinner,当我点击例如德语时,应用程序会被翻译成德语。当我重新启动应用程序时,我再次拥有默认语言。 我现在的问题是如何保存在我重新启动应用程序时仍然更改为所选语言的语言?
我的Activity的代码是:
private Typeface ttf;
Spinner spinnerctrl;
Button btn;
Locale myLocale;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_einstellungen);
//Schrift & OnClickListener
ttf = Typeface.createFromAsset(getAssets(), "schrift.ttf");
((TextView)findViewById(R.id.settings_title)).setTypeface(ttf);
((TextView)findViewById(R.id.appinfo)).setTypeface(ttf);
findViewById(R.id.appinfo).setOnClickListener(this);
((TextView)findViewById(R.id.settings_back)).setTypeface(ttf);
findViewById(R.id.settings_back).setOnClickListener(this);
//Spinner Language
spinnerctrl = (Spinner) findViewById(R.id.spinner);
spinnerctrl.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if (pos == 1) {
setLocale("ar");
} else if (pos == 2) {
setLocale("en");
} else if (pos == 3) {
setLocale("de");
} else if (pos == 3) {
setLocale("nv-rUs");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
//TODO Language translation System
//LanguageTranslation
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, Settings.class);
startActivity(refresh);
finish();
}
@Override
public void onBackPressed() {
}
@Override
public void onClick(View view) {
if(view.getId()==R.id.appinfo) {
showAppinfo();
} else if(view.getId()==R.id.settings_back) {
finish();
}
}
private void showAppinfo() {
final Dialog dialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.dialog_appinfo);
((TextView)(dialog.findViewById(R.id.appinfo_herrausgeber))).setTypeface(ttf);
((TextView)(dialog.findViewById(R.id.appinfo_name))).setTypeface(ttf);
((TextView)(dialog.findViewById(R.id.appinfo_version))).setTypeface(ttf);
((TextView)(dialog.findViewById(R.id.appinfo_developer))).setTypeface(ttf);
((TextView)(dialog.findViewById(R.id.appinfo_back))).setTypeface(ttf);
dialog.findViewById(R.id.appinfo_back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
return;
}
});
dialog.show();
}
}
【问题讨论】:
-
您可以保存上次选择的语言我共享的首选项,并在启动您的应用程序时检查上次选择的语言并使用该语言初始化您的应用程序
标签: android android-studio save