从片段(设置)中按下名为
理想情况下,可以在
以下是我想要实现的应用程序示例:https://play.google.com/store/apps/details?id=com.funeasylearn.english 其中包含的截图:
DialogFragment
的 TextView
,在其中更改应用程序的设置(语言),如何关闭 DialogFragment
,应用设置而不重新启动整个应用程序?理想情况下,可以在
SingleChoice
选择对话框上立即更改语言。通过重新启动,一切都能正常工作。这是 DialogFragment
的代码:public class LanguageDialogFragment extends DialogFragment {
final String[] itemsLang = {"English", "Russian", "Ukraine"};
final String[] items = {"en", "ru", "uk"};
String lang;
MainActivity activity = new MainActivity();
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Выберите свой родной язык")
.setSingleChoiceItems(itemsLang, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
lang = items[item];
}
})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
App.prefs.saveLanguage(lang);
App.changeLang(lang);
reload();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
return builder.create();
}
private void reload() {
Intent intent = getActivity().getIntent();
getActivity().finish();
Intent LaunchIntent = getActivity().getPackageManager().getLaunchIntentForPackage(App.context.getPackageName());
startActivity(LaunchIntent);
}
}
以下是我想要实现的应用程序示例:https://play.google.com/store/apps/details?id=com.funeasylearn.english 其中包含的截图: