嘿伙计我需要有关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;
}
答案 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上自动设置显示日期。
快乐的代码,乐于助人。 :)