私のアプリでは、ユーザーが最初に見たアクティビティは、言語を選択することです。ユーザーがアプリケーション内で言語を変更したときにアンドロイド:ラベルのテキストが変更されないのはなぜですか?
ユーザーがfrenchを選択し、次にActivityB、次にActivityCに行くとします。
言語を変更することを決定しました。
アクティビティBに戻り、最初のアクティビティに戻り、スペイン語として言語を選択します。
アクティビティBに行くと、フラグメント/アクティビティ内の他のテキストはすべてスペイン語に変更されますが、アンドロイド:ラベルはフランス語で残ります。これを修正する方法は?
これは私のActivityAは、私の場合は
public View onCreateView(LayoutInflater inflater, ViewGroup container,
final Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_choose_language, container, false);
radioGroup = (RadioGroup) rootView.findViewById(R.id.lang_choice_radio);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.english_lang:
// do operations specific to this selection
setLocale("en_US");
Intent intentEng = new Intent(getActivity(), Choose_Country.class);
startActivity(intentEng);
break;
case R.id.indonesian_lang:
// do operations specific to this selection
setLocale("in");
Intent intent = new Intent(getActivity(), Choose_Country.class);
startActivity(intent);
break;
}
}
});
return rootView;
}
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);
Locale.setDefault(myLocale);
onConfigurationChanged(conf);
Intent refreshIntent = new Intent(getActivity(), ChooseLanguage.class); // refresh the activity
refreshIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
refreshIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(refreshIntent);
getActivity().finish();
}
これは既にそれがどのようにして行われているかです。 – user3705478
この行のアクティビティは終了しています。getActivity()。finish();ユーザーは[アクティビティBから]アクティビティ[A]に戻ってどのようにナビゲートできますか? –