【问题标题】:how would i start a TimepickerDialog from a DialogFragment in android?我将如何从 android 中的 DialogFragment 启动 TimepickerDialog?
【发布时间】:2015-08-06 01:31:31
【问题描述】:

长话短说,当用户单击我的 DialogFragment 中的按钮时,我希望弹出一个 TimePickerDialog 片段,然后在设置时间后,用户返回上一个片段。所有这些都将在活动或父片段中进行管理,并且执行此类操作的步骤是什么?如果有人能指出我正确的方向,我会非常感激,我无法在任何地方找到一个直接的答案。谢谢大家!

【问题讨论】:

    标签: android timepicker dialogfragment


    【解决方案1】:

    将此添加到您的代码中:

    package com.whatever.date;
    
    import android.app.DatePickerDialog;
    import android.app.Dialog;
    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.support.v4.app.DialogFragment;
    
    import java.util.Calendar;
    
    public class DatePicker extends DialogFragment {
        @NonNull
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            Calendar c = Calendar.getInstance();
            return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(),
                    c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
        }
    }
    

    这是你的主要活动 onClick 方法

    DialogFragment f = new DatePicker();
    f.show(getSupportFragmentManager(), "TAG");
    

    【讨论】:

    • 只有一个事件监听器可以创建片段,它是主要的 CustomDialogFragment。在主 CustomDialogFragment 中有一个“设置时间”按钮,它将呈现 TimePickerDialog。有点对话的开始,大声笑会继承 CustomDialogFragment 给我我需要的结果吗?
    • CustomDialogFragment 有一个按钮。单击此按钮时,它将打开日期选择器。正确的?还是我弄错了?
    • 不,这是正确的,只是在我看来,既然 CustomDialogFragment 将呈现一个新的 TimePickerDialog,CustomDialogFragment 不应该负责启动它,还是不正确?
    • 不,我认为你应该只创建一个新的 DialogFragment,避免这里的意大利面条代码。另外,CustomDialogFragment 有一个按钮,会被重绘
    • 好的,让我看看我是否明白这一点:在 Activity 中创建一个方法来处理 TimePickerFragment,然后将 Activity 引用传递给 CustomDialogFragment,并在某些事件中调用 CustomDialogFragment 内部的活动方法?
    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多