2017-08-08 7 views
1

Backwards compatible Je suis en train d'utiliser un DatePickerDialog dans un Fragment et mettre un OnDateSetListener à lui, mais quand j'essayer d'utiliser la méthode setOnDateSetListener-je obtenir une compilation d'avertissement comme appel requiert un niveau API 24 (min en cours est 16). Existe-t-il une autre façon de recevoir ce rappel? SDK de mon application min est 16 et le maximum est 26.setOnDateSetListener

Voici mon code:

DatePickerDialog.Builder builder = new DatePickerDialog.Builder(getContext()); 
builder.setTitle(R.string.pick_date); 
builder.setNegativeButton(R.string.cancel, null); 
builder.setPositiveButton(R.string.ok, this); 
DatePickerDialog dialogue = (DatePickerDialog) builder.create(); 
dialogue.setOnDateSetListener(this); // This is where I get the error 
dialogue.show(); 

Répondre

1

Utilisez ce constructeur pour DatePickerDialog

DatePickerDialog(@NonNull Context context, @Nullable OnDateSetListener listener, int year, int month, int dayOfMonth) 
1

constructeur DatePickerDialog(Context context) a été ajouté au niveau de l'API 24.

Si vous voulez rendre la compatibilité descendante, utilisez this constructor qui a été ajouté au niveau API 1:

DatePickerDialog (Context context, 
       DatePickerDialog.OnDateSetListener listener, 
       int year, 
       int month, 
       int dayOfMonth)