Выбор даты с максимальной и минимальной датой в onDateChanged () в Android 1.5?

Я работаю над DatePicker в Android 1.5. Я пытаюсь установить максимальную и минимальную дату. Минимальная дата должна быть текущей датой, а максимальная дата должна быть датой, которую я буду указывать в строке как maxYear, maxMonth, maxDay. (Предположим, сегодняшняя дата = 30/12/2011, но выбирает 29.12.2011)

Все работает нормально с минимальной датой. Так как она показывает только текущую дату. Но при выборе с помощью кнопки минус на панели выбора, она выбирает дату меньше, чем сегодняшняя дата. Хотя в случае выбора максимальной даты он выбирает день, месяц и год больше максимальной даты.

Как ограничить пользователя, чтобы не выбирать меньше минимальной даты и максимальной даты. Какие дополнительные условия я должен поставить, чтобы сделать его идеальным?

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()



    }



 }

Ответы на вопрос(1)

Ваш ответ на вопрос