我正在使用Android App。以下代码工作正常,但是当我通过MainActivity
按钮转到BackPress
时。
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Configuration config = getBaseContext().getResources().getConfiguration();
String lang = settings.getString("lang_list", "");
if (! "".equals(lang) && ! config.locale.getLanguage().equals(lang)) {
recreate();
Locale locale = new Locale(lang);
Locale.setDefault(locale);
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
当我从MultiListPreference
更改我的应用语言时,会出现错误
引起:java.lang.ClassCastException:android.preference.ListPreference无法强制转换为android.preference.MultiSelectListPreference
我的应用程序崩溃了..
请看下面的代码..
final MultiSelectListPreference lang_list= (MultiSelectListPreference) findPreference("lang_list");
if(news_category_list!=null)
{
news_category_list.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
AppController.getInstance().notifyPrefrenceChanged(true);
//Log.d("on change","change");
lang_list.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
startActivity(new Intent(getActivity(),getActivity().this));
return false;
}
});
return true;
}
});
}
如何在选择新语言的情况下刷新屏幕。选择新语言后,我不想去MainActivity
。当我选择其他语言时,只需用当前屏幕刷新页面。
请帮我这个代码。 当我选择ListPreference中列出的任何语言选项时,如何刷新/重新创建应用(或活动)?
谢谢!
答案 0 :(得分:0)
要进行特定活动,请明确提及该课程:
替换
startActivity(new Intent(getActivity(),getActivity().this));
与
startActivity(new Intent(getActivity(), TargetActivity.class));
(上面一行中的TargetActivity
将是您要去的活动)