android - 来自 Android 开发人员的 Timepicker 不允许静态

标签 android android-activity timepicker

我从 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()”,它已被删除。

最佳答案

提供的示例隐含地假设您将该代码作为内部类添加到另一个 ActivityFragment 中。如果这不是您正在做的,请从中删除 static 。请注意,当 DialogFragment 在外部类中时,它之间的通信会变得有点乏味(您必须使用接口(interface)来来回通信)。

关于你的第二个问题,要显示对话框使用类似:

DialogFragment dialog = new MyDialogFragment();
dialog.show(getFragmentManager(), "MyDialog");

关于android - 来自 Android 开发人员的 Timepicker 不允许静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19258409/

相关文章:

c# - 如何更改时间选择器的突出显示背景?

Android:如何关闭明确显示的软键盘?

android - 无法在 AsyncTask 中访问 “findViewById”

android - TextInputLayout 设计支持库不显示 setCounterEnable() 方法 android

Android Mapbox 如何在使用 CirlceClustering 层时捕获标记点击

android - 在 uncaughtException() 调用上开始 Activity

java - 为 Android 创建动态游戏引擎的自然方法

android - 无需等待完成即可完成 Activity

javascript - 使用时间戳获取两个不同日期之间的时间差?

javascript - bootstrap-timepicker 的多个动态实例