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是如何知道当前小时和当前分钟的。仅在onCreate中定义timePicker。当用showDialog()调用onCreateDialog时,它返回一个TimePickerDialog,它似乎根本不知道timePicker,但是timePicker能够获得当前的小时和分钟来为它干杯。
发布于 2011-09-07 10:15:28
TimePickerDialog包含一个TimePicker小部件,该小部件实现了获取当前时间的代码。示例代码直接引用TimePickerDialog中的TimePicker,假设TimePickerDialog将始终包含一个id为:timePicker的TimePicker。
但是,您不需要神奇地知道TimePicker的id。您可以实现TimePicker.OnTimeChangedListener回调接口,该接口可以通过onTimeChanged (TimePicker view, int hourOfDay, int minute)方法访问嵌入式TimePicker,如此Time Picker tutorial所示。
发布于 2011-09-07 03:34:06
调用showDialog()时,将在活动的视图层次结构中创建对话框。因此,当下一行执行findViewById(R.id.timePicker)时,它会在对话框中找到TimePicker,并在timePicker中保存对它的引用。
发布于 2011-09-07 03:47:01
在onCreate方法中,你只有引用。
当您单击btnOpen时,您将调用getCurrentHour()和getCurrentMinute()来获取当前时间。
https://stackoverflow.com/questions/7325039
复制相似问题