Я создал свой собственный DatePicker, теперь сбор даты работает, но я хотел бы ограничить его тем, что у пользователя не будет возможности выбрать дату, которая находится до текущей даты. в следующем коде, когда я выбрать дату 11.11.15 я получаю следующие печатныеDatePicker onDataSet не работает должным образом
D/this date﹕ 2015 11 11
D/this date﹕ 2015 11 9
, но до сих пор не проникая внутрь моего, если:
if(this.year < year || this.month < monthOfYear || this.day < dayOfMonth)
это весь код:
package com.example.matant.gpsportclient.Utilities;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.util.Log;
import com.example.matant.gpsportclient.InterfacesAndConstants.OnCompleteListener;
import java.util.Calendar;
import java.util.Date;
/**
* Created by matant on 9/10/2015.
*/
public class DatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener {
private OnCompleteListener mListener;
private int year,month,day;
private Calendar cal;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
mListener = (OnCompleteListener) getTargetFragment();
}catch (ClassCastException e)
{
Log.d("Class casting Error", e.getMessage());
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Date today = new Date();
cal = Calendar.getInstance();
cal.setTime(today);
cal.add(Calendar.MONTH,-6);
long minDate = cal.getTime().getTime();
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH);
day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog pickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);
pickerDialog.getDatePicker().setMinDate(minDate);
return pickerDialog;
}
@Override
public void onDateSet(android.widget.DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Log.d("Calendar",String.valueOf(dayOfMonth)+"/"+String.valueOf(monthOfYear)+"/"+String.valueOf(year));
{
Log.d("this date",String.valueOf(this.year)+" "+String.valueOf(this.month)+" "+String.valueOf(this.day));
Log.d("this date",String.valueOf(year)+" "+String.valueOf(monthOfYear)+" "+String.valueOf(dayOfMonth));
if(this.year < year || this.month < monthOfYear || this.day < dayOfMonth)
{
Log.d("date no valid","wrong date");
mListener.onComplete("Date_not_valid","Please insert a valid date!");
}else{
Log.d("date valid","date");
mListener.onComplete("date",String.valueOf(dayOfMonth)+"/"+String.valueOf(monthOfYear+1)+"/"+String.valueOf(year));
}
}
}
}
где я должен использовать эту функцию? внутри onCreatedialog или inDataSet? –
У меня также была ошибка в условии if его должно быть "this.day> dayOfMonth" –