我从 Android Developers 中获取了原始的 TimePicker-Source
并将其粘贴到 Android Studio 中的一个新类中。 Android Studio 抛出错误“此处不允许使用修饰符‘static’”。怎么了?这是来源:
public static class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// Do something with the time chosen by the user
}
}
顺便说一句:有没有一种在 Activity 中使用时间选择器的简单方法?此处几乎所有示例都使用“showDialog()”,它已被删除。
最佳答案
提供的示例隐含地假设您将该代码作为内部类添加到另一个 Activity
或 Fragment
中。如果这不是您正在做的,请从中删除 static
。请注意,当 DialogFragment
在外部类中时,它之间的通信会变得有点乏味(您必须使用接口(interface)来来回通信)。
关于你的第二个问题,要显示对话框使用类似:
DialogFragment dialog = new MyDialogFragment();
dialog.show(getFragmentManager(), "MyDialog");
关于android - 来自 Android 开发人员的 Timepicker 不允许静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258409/