Я пытаюсь решить ту же описанную проблему here. После того, как дата выбрана, я хочу использовать ее для открытия браузера. Следует также отметить, что я делаю эту работу из фрагмента.Android Datepicker: как всплывать datepicker при нажатии на кнопку и хранить значение в переменной
Я использую второе решение, но я сталкиваются с двумя проблемами:
- При нажатии на кнопку ChooseDate DatePicker выскакивает, но прежде, чем я могу выбрать дату, когда приложение уже открывает браузер со старой датой. Когда я нажимаю кнопку «назад», я вижу DatePicker, и я могу выбрать дату, и если я снова нажму кнопку «Выбрать», браузер откроется почти (см. 2) желаемую дату, а затем нажмите «Назад», я все еще вижу DatePicker и т. Д. ,
- DatePicker возвращает месяц со смещением -1. НАПРИМЕР. Я выбираю Марта, и я получаю февраль. Это происходит как на эмуляторе, так и на устройстве Nexus 5. mCalender - это григорианский календарь.
Мои вопросы:
Как я могу получить календарь, чтобы остаться, пока я не выбрать дату, а затем сделать его уйти?
ли кто-либо столкнуться неправильный месяц, поставляемый в Календаре (я перестроил приложение, закрытый и открытый Android Studio), и если да, то что вы сделали с этим (другим тогда очевидным +1 хак)
Я использую Android Studio 1.1.0, API 21.
Спасибо!
Код:
mChooseDateButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
openBrowser(CHOOSE_DAY);
}
});
void openBrowser(int option) {
String date = "";
switch (option) {
...
case CHOOSE_DAY:
chooseDate();
date = mChosenDate;
break;
...
}
String url = getUrl(date);
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);
}
...
void chooseDate() {
int year = mCalendar.get(Calendar.YEAR);
int month = mCalendar.get(Calendar.MONTH);
int day = mCalendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(this.getActivity(),
new DateSetListener(), year, month, day);
dialog.show();
}
class DateSetListener implements DatePickerDialog.OnDateSetListener {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
int chosenMonth = monthOfYear;
int chosenDay = dayOfMonth;
Log.i("DEBUG","chosen month: " + chosenMonth);
updateChosenDate(chosenMonth,chosenDay);
}
}
Может ли кто-нибудь объяснить нижний предел? В настоящее время я просматриваю примеры того, как достичь этого, и я хотел бы знать, почему это проблема? – MOnsDaR