好,这很奇怪.我有一个非常简单的DatePicker对话框.问题是,无论我选择什么日期,返回的值都恰好是所选日期的一个月.这是我的代码:
活动
btnEventDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
});
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
DateTime dt = new DateTime(year, monthOfYear, dayOfMonth, 0, 0, 0, 0);
Log.d(Constants.TAG, "dt: " + dt.toString());
Log.d(Constants.TAG, "str: " + dateHandler.convertDateToYYYY_MM_DDString(dt));
}
DatePickerFragment
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@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);
return new DatePickerDialog(getActivity(), (OnDateSetListener)getActivity(), year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {}
}
当对话框出现时,它显然设置为今天的日期.假设我选择2015年10月12日,日志输出将显示以下内容:
dt: 2015-09-12T00:00:00.000-06:00
str: 2015-09-12
我肯定错过了什么.有人知道我在做什么错吗?
解决方法:
月份从0到12.从一月到十一月.
尝试将它们与Calendar.“ MONTH”进行比较.
示例:Calendar.OCTOBER == 9
链接:http://developer.android.com/reference/java/util/Calendar.html#MONTH.
注意:如果您使用GregorianCalendar,则可以忽略第13个月.
标签:android,datepicker 来源: https://codeday.me/bug/20191013/1911057.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。