2016-02-24 3 views
0

Я хочу отключить даты до сегодняшнего дня в DatePickerDialog. Я новичок в android, пожалуйста, предложите мне, как я могу это сделать. Вот мой код, который я написал для DatePickerDialog.отключить даты до сегодняшнего дня в DatePickerDialog Android?

<TextView 
 
      android:id="@+id/tv_arrival" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:layout_alignParentLeft="true" 
 
      android:layout_centerVertical="true" 
 
      android:text="@string/arrivaldate"/> 
 

 
     <Button 
 
      android:id="@+id/btn_arrival" 
 
      android:layout_width="wrap_content" 
 
      android:layout_height="wrap_content" 
 
      android:layout_alignParentRight="true" 
 
      android:text="Set"/>

Button btn_arrival = (Button) findViewById(R.id.btn_arrival); 

     txt_arrival = (TextView) findViewById(R.id.tv_arrival);   
     myCalendar = Calendar.getInstance();   

     final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { 

      @Override 
      public void onDateSet(DatePicker view, int year, int monthOfYear, 
        int dayOfMonth) { 

       myCalendar.set(Calendar.YEAR, year); 
       myCalendar.set(Calendar.MONTH, monthOfYear); 
       myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 

       updateLabel(); 
      } 
     }; 


     btn_arrival.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       new DatePickerDialog(MainActivity.this,date , myCalendar 
         .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
         myCalendar.get(Calendar.DAY_OF_MONTH)).getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 

      } 

     }); 
private void updateLabel() { 

     String myFormat = "dd.MM.yyyy"; //In which you need put here. 
     SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); 

     txt_arrival.setText("Arrival Date on:" + sdf.format(myCalendar.getTime())); 

    } 

Пожалуйста, предложите мне, что нужно делать.

+0

См [это] (http://www.codota.com/android/methods/ android.widget.DatePicker/setMinDate) или [это] (http://stackoverflow.com/questions/22496947/android-datepicker-disabling-the-previous-dates-based-on-the-current-date/22497233#22497233) –

ответ

4

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

datePicker.setMinDate(System.currentTimeMillis() - 1000); 

Вы можете использовать его как это. Я проверил его и он работает

import android.app.DatePickerDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.DatePicker; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button mButton = (Button)findViewById(R.id.m_button); 
    mButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      DatePickerDialog mDate = new DatePickerDialog(MainActivity.this, date, 2016, 2, 24); 
      mDate.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
      mDate.show(); 
     } 
    }); 
} 

final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { 

    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     view.setMinDate(System.currentTimeMillis() - 1000); 
    } 
}; 

}

+0

, где я могу поместить его в свой код, я напишу его в своем коде, но я не могу поместить метод show для отображения datepicker. Я не знаю, правильно ли его написать или нет. – hashim

+0

Я обновил свой код. вы можете увидеть изменения – Inducesmile

+0

не работает я пытаюсь это сейчас – hashim

0

Я проверил код и он работает

final Calendar calendarEndDate = Calendar.getInstance(); 
YearEndDate = calendarEndDate.get(Calendar.YEAR); 
MonthEndDate = calendarEndDate.get(Calendar.MONTH); 
DayEndDate = calendarEndDate.get(Calendar.DAY_OF_MONTH); 
updateEndDisplay(); 
endDate.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     DatePickerDialog endDate = new DatePickerDialog(AttendandItemRequest.this, 
       endDateSetListener, 
       YearEndDate, MonthEndDate, DayEndDate); 
     endDate.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 
     endDate.show(); 
    } 
}); 

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

  • Нет связанных вопросов^_^