当前位置: 首页 > 知识库问答 >
问题:

自定义对话框中的Android-DatePicker

施自明
2023-03-14

我有一个带有datepicker的自定义对话框。在我的片段上,我有一个按钮,当我按下它时,对话框就会显示出来,我可以从DatePicker中选择日期。我希望选定的日期显示在我的片段中的TextView上。我的代码如下:

这是我的主activity上包含片段的对话框的代码:

public int day;
    public int month;
    public int year;

    @SuppressLint("InflateParams")
    @SuppressWarnings("deprecation")
    public void SetDate(){
        AlertDialog alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("Select Date");
        alertDialog.setIcon(R.drawable.action_reservations);
        LayoutInflater layoutInflater = LayoutInflater.from(context);
        View promptView = layoutInflater.inflate(R.layout.datepicker, null);
        alertDialog.setView(promptView);
        final DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
        final TextView PickedDate = (TextView) findViewById(R.id.pickeddate);
        alertDialog.setButton("OK", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which) 
            {
                day=datePicker.getDayOfMonth();
                month=datePicker.getMonth() + 1;
                year=datePicker.getYear();
                PickedDate.setText(new StringBuilder().append(day).append(" ").
                        append("-").append(month).append("-").append(year));
            }

        });
        // Showing Alert Message
        alertDialog.show();
       }

我从datepicker中获取日、月和年,并使用

PickedDate.setText(new StringBuilder().append(day).append(" ").
                            append("-").append(month).append("-").append(year));

在我的片段中,我使用下面的代码调用我的对话框:

final Button SetDate = (Button)rootView.findViewById(R.id.selectdate);
        SetDate.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {       
                ((MainActivity) getActivity()).SetDate();            
            }  
            });

当我运行我的应用程序时,我在以下行中得到一个nullPointerException:

day=datePicker.getDayOfMonth();
month=datePicker.getMonth() + 1;
year=datePicker.getYear();

我做错了什么?提前致谢

共有1个答案

洪安顺
2023-03-14

尝试替换

final DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
final TextView PickedDate = (TextView) findViewById(R.id.pickeddate);

用这个

final DatePicker datePicker = (DatePicker) promptView.findViewById(R.id.datePicker1);
final TextView PickedDate = (TextView) promptView.findViewById(R.id.pickeddate);
 类似资料:
  • 本文向大家介绍Android 自定义对话框 showSetPwdDialog,包括了Android 自定义对话框 showSetPwdDialog的使用技巧和注意事项,需要的朋友参考一下 样式如下所示: 布局: layout   dialog_set_pwd.xml 状态选择器: drawable   btn_blue_selector.xml   btn_white_selector.xml 引

  • 本文向大家介绍Android自定义等待对话框,包括了Android自定义等待对话框的使用技巧和注意事项,需要的朋友参考一下 最近,看了好多的APP的等待对话框,发现自己的太lower,于是就研究了一番,最后经过苦心努力,实现一个。 自定义一个LoadingIndicatorView(extends View )类 编写values/attrs.xml,在其中编写styleable和item等标签元

  • 我正在尝试弹出一个自定义对话框,当我点击一个按钮,但它不会弹出在所有。我的应用程序基本上是一个日历,我将使用sqlite在日历中添加/保留约会和其他内容,使用对话框,这是指定约会细节的地方。 我为此使用的代码如下: 我做错了什么?

  • 我是Android新手,正在开发自定义警报对话框 我想打开另一个对话框,点击编辑按钮,代码如下 但我得到了一个异常,我的日志cat输出如下 就连我的红色十字按钮也可以正常工作,我已经多次使用相同的代码用TextView显示AlertDialog,但我不知道代码出了什么问题。非常感谢您的帮助。提前谢谢。 现在我得到了我想要的,但是编辑和保存都有重叠。我想隐藏编辑(蓝色按钮)并使保存按钮清晰可见。

  • 我想创建一个如下所示的自定义对话框 我试过以下几件事。 > 我创建了AlertDialog.Builder的子类,并使用了自定义标题和自定义内容视图,但结果不是预期的。 另一个尝试是子类DialogFragment并自定义onCreateDialog中的对话框,但结果并不像预期的那样。 然后我尝试使用一个普通的对话框类。结果不如预期。 在这三种情况下,问题是当我忽略标题视图时,对话框的大小不像预期

  • 本文向大家介绍属于自己的Android对话框(Dialog)自定义集合,包括了属于自己的Android对话框(Dialog)自定义集合的使用技巧和注意事项,需要的朋友参考一下 Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismis