【发布时间】:2017-10-04 05:06:34
【问题描述】:
大家好,我想在从开始日期选择的日期之后显示日期选择器(结束日期)。结束日期选择器将在起始日期之后显示日期。结束日期将在起始日期之后和之前显示日期选择器日期不会显示。我该怎么办? 我正在尝试的是
fromdate = (EditText) findViewById(fromDate);
todate = (EditText) findViewById(R.id.todate);
fromdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showTruitonDatePickerDialog(view);
}
});
todate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showToDatePickerDialog(view);
}
});
}
public void showTruitonDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
public void showToDatePickerDialog(View v) {
DialogFragment newFragment = new ToDatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
public static class DatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
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);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
fromdate.setText(day + "/" + (month + 1) + "/" + year);
} }
public static class ToDatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
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);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
view.setMinDate(fromDate);
todate.setText(day + "/" + (month + 1) + "/" + year); } }
【问题讨论】:
-
您是在问如何自动从一个日期选择器转到下一个日期选择器。我对你试图问的问题感到困惑,你能澄清一下吗
-
使用DatePicker和setMinDate(long)和setMaxDate(long)或者你可以使用DatePickerDialog传递开始数据和(OnDateSetListener)[developer.android.com/reference/android/app/…
-
@Sam 我有两个编辑文本框。一个是开始日期和结束日期。当我单击每个编辑文本框(如开始日期)时,打开日期选择器以选择一个日期。现在我的问题结束日期( datepicker) 将显示起始日期之后的日期。
-
哦,所以您想将结束日期的日期选择器更新为所选日期之后的第一个日期,对吗?如果是这样,只需在 fromDate 的类变量附近共享所选日期并在启动时传递给 toDate 作为要使用的日期而不是获取当前日期,使用 toDate 并为其添加 1 天
-
如果需要,我会发布答案供您详细说明
标签: android android-calendar android-datepicker