ユーザーが出力ダイアログで [OK] を選択した場合に、クラスの設定を変更したいと考えています。そのために、クラスにこのメソッドを実装しました。
if (basalcor != basal) {
FragmentManager fragmentManager = getFragmentManager();
ChangeBasalDialog dialogo = new ChangeBasalDialog(basal);
dialogo.show(fragmentManager, "tagbasal");
if (dialogo.check == true) {
String ok= "Basal factor changed succesfully";
SharedPreferences.Editor prefsEditor = myprefs.edit();
if (basalMorFrame == true) {
prefsEditor.putString("basalMor", String.valueOf(basal));
prefsEditor.commit();
Toast toast=Toast.makeText(Mymeasures.this, ok, Toast.LENGTH_SHORT);
toast.show();
}
if (basalNiFrame == true) {
prefsEditor.putString("basalNi",
String.valueOf(basal));
prefsEditor.commit();
Toast toast=Toast.makeText(Mymeasures.this, ok, Toast.LENGTH_SHORT);
toast.show();
}
}
}
これが ChangeBasalDialog クラスです。
public class ChangeBasalDialog extends DialogFragment{
double basal=0;
boolean check=false;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder =
new AlertDialog.Builder(getActivity());
builder.setMessage("The system recommends you now a new Basal factor ("+String.valueOf(basal)+"). Do you want to set the new one as default?")
.setTitle("New Basal recommendation avaliable")
.setPositiveButton("Yes, i want", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
check=true;
dialog.cancel();
}
})
.setNegativeButton("No, I'll keep my old value", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
return builder.create();
}
public ChangeBasalDialog (double a){
basal=a;
}
}
問題は、[OK] を押しても dialogo.check が常に false であり、設定を変更できないことです。OKボタンを押したときにdialogo.check = trueを返すようにしたいだけですが、すべてを試してみましたが、表示されません。前もって感謝します