Android开发人员的Timepicker不允许静态

Mar*_*tin 4 android timepicker android-activity

我从Android开发者那里获取了原始的TimePicker-Source

并将其粘贴到Android Studio中的新类中.Android Studio会抛出错误"修改程序'静态',此处不允许".怎么了?这是来源:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下:有没有一种简单的方法可以在活动中使用时间戳?这里几乎所有的例子都使用"showDialog()",这是被描述的.

Kas*_*rdi 8

提供的示例隐式假设您将该代码添加到另一个内部ActivityFragment作为内部类.如果那不是您正在做的事情,请static从中移除它.请注意,虽然DialogFragment在外部类中它之间的通信有点令人厌烦(您必须使用接口来回通信).

关于你的第二个问题,要显示对话框,请使用以下内容:

DialogFragment dialog = new MyDialogFragment();
dialog.show(getFragmentManager(), "MyDialog");
Run Code Online (Sandbox Code Playgroud)