Я начинающий программист для Android, и у меня есть этот вопрос.Android-запрос о потоке управления onClick и 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
но день hasnt был установлен в в диалоговом окне. Так как я могу обойти это?
Большое спасибо.
вам нужен другой объект чтобы быть DatePickerDialog.OnDateSetListener, чтобы он мог получать событие. – njzk2