私は初心者の Android プログラマーで、この質問があります。
私は次のようなクラスを持っています...
import java.util.Calendar;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.widget.DatePicker;
public class DatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
private int year;
private int month;
private int day;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(),
AlertDialog.THEME_DEVICE_DEFAULT_DARK, this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
this.setYear(year);
this.setMonth(month);
this.setDay(day);
System.out.println(day+""+month+""+year);
// Do something with the date chosen by the user
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
}
私の主なアクティビティには、リスナー付きのボタンがあり、それを押すと、このクラスが呼び出され、次のようにダイアログ ボックス/日付ピッカーが表示されます。
setDoBButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.show(getFragmentManager(), "datePicker");
}
});
私の問題は、ボタンをクリックしてダイアログボックスが表示されたら、日付を設定して呼び出された後、設定が完了するのを待っていないonDateSet
ため、ゲッターを使用してメインアクティビティの変数に日付を割り当てることができないことですonclick
ダイアログ ボックスの日付。
たとえば、私のリスナーがこのようなものだったら...
setDoBButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.show(getFragmentManager(), "datePicker");
int x = newFragment.getDay();
}
});
ダイアログボックスが表示され、ダイアログボックスに日が設定されていgetDay
ないため、すぐに呼び出されるため、機能しません。onclick
では、どうすればこれを回避できますか?
どうもありがとう。