为了账号安全,请及时绑定邮箱和手机立即绑定

init初始化里的年月日和onDateChanged里的年月日这几个参数有什么关系?又有什么作用啊?

datePicker.init(year,month,day,new OnDateChangedListener()){
@Override
public void onDateChanged(DatePicker view,int year,int cal.get(Calendar.MONTH_OF_YEAR),int dayOfMonth){
setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
}

init初始化里的年月日和onDateChanged里的年月日这几个参数有什么关系?又有什么作用啊?

正在回答

1 回答

我来回答一下哈。

第一、

datePicker.init(year,month,day,new OnDateChangedListener()){}

在init这个函数中,一开始的年月日参数,代表的是当datePicker这个组件一开始出现时的原始日期,这就是它的作用。在此要注意,datePicker组件中的month参数是以0开始计数的,意思就是,你传入0参数,实际显示月份为1月份。而Calendar对象中的月份也正是从0开始计数的,所以推荐在month参数初始化时,采用Calendar对象直接获取。不必再纠结于是加一还是减一的问题了。最后一个参数就是一个监听器。

第二、

onDateChanged()函数中,三个参数分别代表你的DatePicker组件最终选择的数值,即你所选择的年月日。同时这三个参数只是形参,所以不必去修改,在此也指出题主的一个小错误:   int cal.get(Calendar.MONTH_OF_YEAR)这个是没有必要的,保持原来的即可,即int monthOfYear  。      而在onDateChanged函数中的三个参数的作用,就是你可以在这个函数中,利用这三个形参所传来的值,进行你的赋值显示等操作。也就是你所写的setTitle()函数,就是利用了这三个形参传来的值进行修改标题。


以上,希望能够帮助到题主!

0 回复 有任何疑惑可以回复我~
#1

hengly 提问者

非常感谢!知道呢
2016-01-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111161    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

init初始化里的年月日和onDateChanged里的年月日这几个参数有什么关系?又有什么作用啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信