奇妙な問題があります。アプリを実行してボタン(btn_engまたはbtn_pl)をクリックすると、ログインlogcat(「消去ダイアログ」または「消去ダイアログPL」)が表示されますが、次にクリックしても表示されず、ボタンはonClickアクションを実行しません。言語を変えるボタンを作ってみました。私のアプリでは、リソース(文字列配列)からのデータを含むダイアログがあり、言語を変更するときにダイアログを消去して、適切なデータで新しいものを作成します。
//public static Activity act; -> before onCreate(..)
this.act = this;
Button btn_eng = (Button) findViewById(R.id.btnEN);
btn_eng.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("XXX", "Erase dialog");
act.removeDialog(1);
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = act.getBaseContext().getResources().getConfiguration();
config.locale = locale;
act.getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
act.setContentView(R.layout.main);
}
});
Button btn_pl = (Button) findViewById(R.id.btnPL);
btn_pl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("XXX", "Erase dialog PL");
act.removeDialog(1);
Locale locale = new Locale("pl");
Locale.setDefault(locale);
Configuration config = act.getBaseContext().getResources().getConfiguration();
config.locale = locale;
act.getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
act.setContentView(R.layout.main);
}
});