ton*_*099 2 android datepicker android-datepicker android-dialogfragment
我在编辑文本上应用以下代码来选择日期.
public class DatePickerFragment extends DialogFragment
{
private OnDateSetListener listener;
public DatePickerFragment(OnDateSetListener listener)
{
this.listener = listener;
}
@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(), listener, year, month, day);
}
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
//do some stuff
}
void showDateDialog()
{
DatePickerFragment newFragment = new DatePickerFragment(this);
newFragment.show(getFragmentManager(), "date_picker");
}
Run Code Online (Sandbox Code Playgroud)
但是,我想将所有过去的日期变灰,以便不允许用户选择任何日期.这可以通过代码吗?或者我应该在选择后手动检查日期是否是过去的日期?
Sho*_*uri 11
使用setMinDate()函数.它设置自getDefault()时区自1970年1月1日00:00:00以来的最小日期(以毫秒为单位).将最短日期设置为今天的日期,因此用户将无法通过它.像下面这样的东西onCreateDialog:
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);
DatePickerDialog d = new DatePickerDialog(getActivity(), listener, year, month, day);
DatePicker dp = d.getDatePicker();
dp.setMinDate(c.getTimeInMillis());
return d;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6096 次 |
| 最近记录: |