Android- 自定义对话框中的日期选择器

Android- Datepicker at custom dialog

我有一个带有 datepicker 的自定义对话框。在我的 Fragment 上,我有一个按钮,当我按下它时,对话框出现,我 select 来自 datepicker 的日期。我希望 selected 日期显示在我的 Fragment 中的 textview 上。我的代码如下:

这是我主 Activity 上包含 Fragment:

的对话框的代码
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();

我做错了什么?提前致谢

尝试替换

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);