Date Picker con fecha máxima y mínima en onDateChanged () en Android 1.5?
Estoy trabajando en DatePicker en Android 1.5. Estoy tratando de establecer la fecha máxima y mínima. La fecha mínima debe ser la fecha actual y la fecha máxima debe ser la fecha que proporcionaré de la cadena como maxYear, maxMonth, maxDay. (Suponga que la fecha de hoy = 30/12/2011, pero selecciona 29/12/2011)
Todo funciona bien con la fecha mínima. Como muestra solo la fecha actual. Pero en la selección con el botón menos en el selector, selecciona una fecha menor que la fecha de hoy. Mientras que en caso de selección de fecha máxima, selecciona día, mes y año más que la fecha máxima.
Cómo restringir al usuario para que no seleccione menos de la fecha mínima y la fecha máxima. ¿Qué condición adicional tengo que poner para que sea perfecto?
enter code here
///Whole code same
mport java.sql.Date;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import android.widget.DatePicker.OnDateChangedListener;
public class DatePickerActivity extends Activity implements Button.OnClickListener {
public String dateOutput=null;
final Calendar c = Calendar.getInstance();
int minYear1 = c.get(Calendar.YEAR);
int minMonth1 = c.get(Calendar.MONTH);
int minDay1 = c.get(Calendar.DAY_OF_MONTH);
int maxYear = 2011;//
int maxMonth = 12;
int maxDay = 29;
int minYear = minYear1;
int minMonth = minMonth1;
int minDay = minDay1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatePicker DateDP = (DatePicker) findViewById (R.id.ad_date_picker);
DateDP.init(minYear1, minMonth1, minDay1, new OnDateChangedListener()
{
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year < minYear)
view.updateDate(minYear, minMonth, minDay);
if (monthOfYear < minMonth && year == minYear )
view.updateDate(minYear, minMonth, minDay );
if (dayOfMonth < minDay && year == minYear && monthOfYear == minMonth)
view.updateDate(minYear, minMonth, minDay);
if (year > maxYear)
view.updateDate(maxYear, maxMonth, maxDay);
if (monthOfYear > maxMonth && year == maxYear)
view.updateDate(maxYear, maxMonth, maxDay);
if (dayOfMonth > maxDay && year == maxYear && monthOfYear == maxMonth)
view.updateDate(maxYear, maxMonth, maxDay);
dateOutput = String.format("Date Selected: %02d/%02d/%04d",
dayOfMonth, monthOfYear+1, year);
// Log.d("Debug", dateOutput);
Toast.makeText(DatePickerActivity.this,dateOutput, Toast.LENGTH_SHORT).show();
}}); // DateDP.init()
}
}