2015-05-30 3 views
-4

Я хочу исправить месяц и год в datePickerDialog, но хочу, чтобы пользователь сам выбирал дату. Является ли это возможным? например: DatePickerDialog будет исправлено с месяц май и 2015 года, пользователь теперь может изменить только даты между 1 до 31Android DatePickerDialog с изменениями дат

+0

обратитесь по этой ссылке http://stackoverflow.com/questions/21321789/android-datepicker-change-to-only-month-and-year –

+0

@Priya, пожалуйста, найдите мое нижнее решение для этого –

+0

Если вы просто не могу ответить, тогда его ohk, но почему вы делаете downvoting que Это правильный вопрос и его соответствие моему проекту. – Anupriya

ответ

0

Вы можете использовать ниже строк кода

public class First extends Activity { 
DatePicker _date; 
Date date_current; 
Date date_future; 
int days_count=0; 

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
@SuppressLint("NewApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.first); 
    Calendar ci = Calendar.getInstance(); 
    String CiDateTime = ci.get(Calendar.YEAR) + "-" + 
      (ci.get(Calendar.MONTH) + 1) + "-" + 
      ci.get(Calendar.DAY_OF_MONTH); 

    SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy"); 


    try { 
     date_current = f.parse(CiDateTime); 
     long milliseconds = date_current.getTime(); 
     _date.setMinDate(milliseconds);//here is _date is DatePicker Object 

     int monthMaxDays = ci.getActualMaximum(Calendar.DAY_OF_MONTH); 
     if(monthMaxDays>ci.get(Calendar.DAY_OF_MONTH)) 
     { 
      days_count = monthMaxDays-ci.get(Calendar.DAY_OF_MONTH); 
      String CiDateMax = ci.get(Calendar.YEAR) + "-" + 
        (ci.get(Calendar.MONTH) + 1) + "-" + 
        ci.get(Calendar.DAY_OF_MONTH)+days_count; 
      date_future = f.parse(CiDateMax); 
      long milliseconds_MAx = date_future.getTime(); 
      _date.setMaxDate(milliseconds_MAx); 
     } 
     else 
     { 
      _date.setMaxDate(milliseconds); 
     } 

    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
} 
+0

@ priya..Is это выполнимо для вас .. Если есть какие-либо проблемы, чем PLZ, дайте мне знать –

+0

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

+0

Хорошо .. Как я получу ответ ... чем я скоро обновлю вас –

0

Вы можете получить лежащий в основе DatePicker из DatePickerDialog (простым вызовом getDatePicker()) и установить его границы с помощью:

+0

@Priya, если вы хотите более подробно объяснить пример, чем сообщить мне. –

1

я решил мою проблему следующим образом:

Calendar cal = Calendar.getInstance(); 
        DatePickerDialog dialog = new DatePickerDialog(this, myDateSetListener, year, month, 
          day); 
        cal.set(Calendar.MONTH, userMonthValue); 

        cal.set(Calendar.YEAR, userYearValue); 

        cal.set(Calendar.DAY_OF_MONTH, 1); 
        dialog.getDatePicker().setMinDate(cal.getTimeInMillis() - 1000); 

        // code to set max date 
        cal = Calendar.getInstance(); 

        cal.set(Calendar.MONTH, userMonthValue); 

        cal.set(Calendar.YEAR, userYearValue); 
        cal.set(Calendar.DAY_OF_MONTH, cal.getMaximum(Calendar.DAY_OF_MONTH)); 
        dialog.getDatePicker().setMaxDate(cal.getTimeInMillis() - 1000); 

Теперь мой диалог выбора даты фиксируется на месяц и год ,,, и пользователь может изменить только даты между 1 и 30 или 31

+0

спасибо ... мне полезно –

Смежные вопросы