首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-11-10 
Android编程之TimePickerDialog设置确定键导致OnTimeSetListener不响应问题在调用TimePickerDialog时,如果

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

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

TimePickerDialog timePickerDialog = new TimePickerDialog(this,new OnTimeSetListener() {@Overridepublic 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() {@Overridepublic 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也是一样的。

热点排行