Datepicker:单击按钮时如何弹出日期选择器并将值存储在变量中[关闭]

Posted

技术标签:

【中文标题】Datepicker:单击按钮时如何弹出日期选择器并将值存储在变量中[关闭]【英文标题】:Datepicker: How to popup datepicker when click on button and store value in variable [closed] 【发布时间】:2013-09-30 13:33:01 【问题描述】:

我想显示日期选择器弹出窗口。我找到了一些例子,但我没有正确理解。我有一个按钮,我希望当我单击按钮时会弹出日期选择器对话框,并且在设置日期后,日期应该存储在一个变量中。请提供示例代码或好的链接。

【问题讨论】:

***.com/questions/18672094/…。检查这个 this 的可能重复项。我建议您先在 Google 或 *** 上搜索您的问题,然后发布问题。 mkyong.com/android/android-date-picker-example 看看这个 【参考方案1】:

试试这个。

在您的按钮点击中使用此代码。将显示日期选择器对话框。

            Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);
    System.out.println("the selected " + mDay);
    DatePickerDialog dialog = new DatePickerDialog(Registration.this,
            new mDateSetListener(), mYear, mMonth, mDay);
    dialog.show();

然后,需要编写mDateSetListener 类。

class mDateSetListener implements DatePickerDialog.OnDateSetListener 

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) 
            // TODO Auto-generated method stub
            // getCalender();
            int mYear = year;
            int mMonth = monthOfYear;
            int mDay = dayOfMonth;
            v.setText(new StringBuilder()
                    // Month is 0 based so add 1
                    .append(mMonth + 1).append("/").append(mDay).append("/")
                    .append(mYear).append(" "));
            System.out.println(v.getText().toString());


        
    

请检查此答案并投票。

【讨论】:

Registration.this 是如何导入的? @Abbe Registration.this 只是对名为Registration 的活动实例的引用,因为DatePickerDialog 需要一个Context 并且每个Activity 都是一个Context。当你在不同的范围内时,你使用ActivityName.this 而不仅仅是this,比如在事件监听器中。【参考方案2】:

让这个类成为你活动中的内部类

如果您想将当前日期设置为您打开 datePicker 时看到的日期。可以这样搞定

Calendar c = Calendar.getInstance();
int startYear = c.get(Calendar.YEAR);
int startMonth = c.get(Calendar.MONTH);
int startDay = c.get(Calendar.DAY_OF_MONTH);

class StartDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) 
        // TODO Auto-generated method stub
        // Use the current date as the default date in the picker
        DatePickerDialog dialog = new DatePickerDialog(BookingFormActivity.this, this, startYear, startMonth, startDay);
 return dialog;

    
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) 
        // TODO Auto-generated method stub
        // Do something with the date chosen by the user
        startYear = year;
        startMonth = monthOfYear;
        startDay = dayOfMonth;
        updateStartDateDisplay();


    
     

您可以通过将此方法设置为 onClick 来调用此对话框

  public void showStartDateDialog(View v)
    DialogFragment dialogFragment = new StartDatePicker();
    dialogFragment.show(getFragmentManager(), "start_date_picker");
    

【讨论】:

updateStartDateDisplay 在哪里实现? StartDatePicker是怎么知道这个方法的?

以上是关于Datepicker:单击按钮时如何弹出日期选择器并将值存储在变量中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在按钮单击时显示日期选择器?

如何在按钮单击并插入跨度标记时显示 jquery datepicker

DatePicker 隐形按钮

jquery 日历/日期选择器

Swift:在带有完成按钮的文本框中弹出 DatePicker

在 datepicker 中选择特定日期时,如何自动填充特定的星期几?