datepicker对话框值变为空

时间:2015-11-18 06:50:33

标签: android datepickerdialog

嘿伙计我需要有关datepicker对话框的帮助,因为我将它的值保存到onDateSet中的变量中:" selectedYear"," selectedMonth"," selectedDay&# 34; 这些是在类中声明为私有的变量。我的问题是在使用格式化日期函数格式化日期之后,变量的值又回到空,这就是为什么我创建了一个新函数,我可以保存它们,我知道这是一个混乱的举动,我想知道为什么这些变量变空,这个代码有什么更好的解决方法。谢谢先进

 datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                Calendar newDate = Calendar.getInstance();
                newDate.set(year, monthOfYear, dayOfMonth);

                selectedYear = year;
                selectedMonth = monthOfYear;
                selectedDay = dayOfMonth;
                setDateEdit.setText(formatDate(selectedYear, selectedMonth, selectedDay));
            }
        }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));


private String formatDate(int year, int month, int day) {
        saveDateToVar(year,month,day);
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(0);
        cal.set(year, month, day);
        Date date = cal.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy");
        return sdf.format(date);
    }



  private void saveDateToVar(int year, int month, int day){
        savedYear = year;
        savedDay = day;
        savedMonth = month;
    }

1 个答案:

答案 0 :(得分:0)

使用此代码并根据您的需要进行修改。这将帮助您打开日期选择器以选择日期。

public class DateDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        month = month + 1;
        textView.setText(year + "-" + month + "-" + day);
    }
}

您可以使用代码分别设置日期,月份或年份。 你必须以这种方式调用该方法。

btn_showDate.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DialogFragment newFragment = new DateDialog();
            newFragment.show(getActivity().getSupportFragmentManager(), "datePicker");

        }
    });

当您单击“确定”时,会在textView上自动设置显示日期。

快乐的代码,乐于助人。 :)