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能够获取当前的小时和分钟来烘烤它。
答案 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()
以获取当前时间。