TimePickerDialog和TimePicker

时间:2011-09-06 19:23:34

标签: android datetimepicker

onCreate(...) {
...
showDialog(TIME_DIALOG_ID);
timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setIs24HourView(true);
...
Button btnOpen = (Button) findViewById(R.id.btnSet);
btnOpen.setOnClickListener(new View.OnClickListener() {
     public void onClick(View v) {
        Toast.makeText(getBaseContext(),
                       “Time selected:” +
                       timePicker.getCurrentHour().toString() +
                       “:” + timePicker.getCurrentMinute().toString(),
                       Toast.LENGTH_SHORT).show();
     }
}

onCreateDialog(...) {
    return new TimePickerDialog(...)
}

以上是Android手册中的代码示例。我想知道timePicker如何知道当前的小时和当前分钟。 timePicker仅在onCreate中定义。当使用showDialog()调用onCreateDialog时,它会返回一个似乎不知道timePicker的TimePickerDialog,但timePicker能够获取当前的小时和分钟来烘烤它。

3 个答案:

答案 0 :(得分:1)

当您致电showDialog()时,会在活动的视图层次结构中创建对话框。因此,当下一行findViewById(R.id.timePicker)时,它会在对话框中找到TimePicker,可能是timePicker的ID,并在timePicker中保存对它的引用。< / p>

答案 1 :(得分:1)

TimePickerDialog包含一个TimePicker小部件,该小部件又实现了获取当前时间的代码。示例代码直接引用TimePicker中的TimePickerDialog,假设TimePickerDialog将始终包含ID为timePicker的{​​{3}}。

但是,您不需要神奇地知道TimePicker的ID。您可以通过onTimeChanged (TimePicker view, int hourOfDay, int minute)方法实现TimePicker回调界面,该界面可以访问嵌入式TimePicker.OnTimeChangedListener,如TimePicker所示。

答案 2 :(得分:0)

onCreate方法上,您只有参考资料。

当您点击btnOpen时,请致电getCurrentHour()getCurrentMinute()以获取当前时间。