Android编程之TimePickerDialog设置确定键导致OnTimeSetListener不响应问题

在调用TimePickerDialog时,如果要修改TimePickerDialog中确定键的名字,就需要调用setButton(int whichButton,CharSequence text,OnClickListener listener)方法,重新设置确定键的名字。但这样直接设置,例如下面的代码,就会造成OnTimeSetListener中onTimeSet不响应。

TimePickerDialog timePickerDialog = new TimePickerDialog(this,
					new OnTimeSetListener() {
						@Override
						public void onTimeSet(TimePicker view, int hourOfDay,
								int minute) {
							System.out.println("time:" + hourOfDay + ":"
									+ minute);
						}
					}, calendar.get(Calendar.HOUR_OF_DAY),
					calendar.get(Calendar.MINUTE), false);

			timePickerDialog.setTitle(R.string.title);
			timePickerDialog.setButton(TimePickerDialog.BUTTON_POSITIVE,
					getString(R.string.ok),
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialog, int which) {

						}
					});
			timePickerDialog.show();


所以,这里要改一下setButton(int whichButton, CharSequence text,OnClickListener listener)中,最后传入的参数,由OnClickListener listener改为TimePickerDialog对象本事,这样就可以响应OnTimeSetListener中onTimeSet的方法。代码如下:

			TimePickerDialog timePickerDialog = new TimePickerDialog(this,
					new OnTimeSetListener() {
						@Override
						public void onTimeSet(TimePicker view, int hourOfDay,
								int minute) {
							System.out.println("time:" + hourOfDay + ":"
									+ minute);
						}
					}, calendar.get(Calendar.HOUR_OF_DAY),
					calendar.get(Calendar.MINUTE), false);

			timePickerDialog.setTitle(R.string.title);
			timePickerDialog.setButton(TimePickerDialog.BUTTON_POSITIVE,
					getString(R.string.ok), timePickerDialog);
			timePickerDialog.show();


注意:setButton最后一个参数,不是OnClickListener对象。


补一句:DatePickerDialog也是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值