Android Datepicker:如何在点击按钮时弹出Datepicker并将值存储在变量中
我正试图解决所描述的相同问题。选择日期后,我希望使用它打开浏览器。还应该注意的是,我是从一个片段开始做这项工作的 我使用第二种解决方案,但面临两个问题:Android Datepicker:如何在点击按钮时弹出Datepicker并将值存储在变量中,android,datepicker,android-calendar,android-datepicker,Android,Datepicker,Android Calendar,Android Datepicker,我正试图解决所描述的相同问题。选择日期后,我希望使用它打开浏览器。还应该注意的是,我是从一个片段开始做这项工作的 我使用第二种解决方案,但面临两个问题: 当我按下ChooseState按钮时,日期选择器弹出,但在我选择日期之前,应用程序已使用旧日期打开浏览器。当我按下后退按钮时,我看到了日期选择器,我可以选择一个日期,如果我再次按下ChooseState按钮,浏览器将打开,几乎显示(参见2)所需的日期,然后按下后退,我仍然可以看到日期选择器,依此类推 DatePicker返回偏移量为-1的月份。
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);
}
}
您需要移动此文件:
String url = getUrl(date);
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);
对于DateSetListener调用onDateSet的方法,它不会在您实际设置日期之前触发。您当前的代码将使其在交换机外壳中运行,并在不等待openBrowser()中的对话框的情况下启动intent
月份的问题可能是因为日历从0开始,并且提供的值没有抵消这一点。因此,只需增加1。有人能解释一下否决票的原因吗?我目前正在查看如何实现这一点的示例,我想知道为什么这是一个问题?