J'ai une activité dans mon application, où je veux que l'utilisateur choisisse la date d'un DatePicker, qui est contenue dans un AlertDialog. Dans le AlertDialog, j'ai défini une vue, à un fichier de mise en page xml (, qui contient uniquement un LinearLayout, avec un seul DatePicker.)Android Studio - DatePicker dans AlertDialog, référence d'objet null
Le code est vraiment simple, et ressemble à ceci, juste en dessous de onCreate().
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setView(R.layout.activity_alertdialog_date);
DatePicker datePicker = (DatePicker) findViewById(R.id.Activity_AlertDialog_SetStartDate);
// ... The rest of the AlertDialog, with buttons and all that stuff
alert.create().show()
la mise en page apparaît dans le AlertDialog, et cette partie fonctionne très bien. Cependant, lorsque je tente d'ajouter cette ligne, je reçois une erreur de référence d'objet nul.
datePicker.setMinDate(System.currentTimeMillis() - 1000);
Voici l'erreur message
tentative d'invoquer la méthode virtuelle « vide android.widget.DatePicker.setMinDate (long) » sur une référence d'objet nul
Comment puis-je résoudre ce problème, ou d'améliorer mon code d'une autre manière? J'apprécie vraiment toute l'aide que je peux obtenir. Merci!
Où essayez-vous d'utiliser cette ligne 'datePicker.setMinDate (System.currentTimeMillis() - 1000);'? Est-ce que 'datePicker' est dans la portée? – DigitalNinja
C'est la ligne suivante. Tout cela est dans une méthode que j'appelle à la fin de onCreate(). Donc j'appelle la méthode dans la ligne juste en dessous de setContentView (...) – Fred
Sidenote à la question: vous pouvez enchaîner vos appels AlertDialog.Builder, ie 'AlertDialog.Builder (this) .setView (R.layout.my_layout) .setButtonPositive (R.string.sweet_text) .create(). show() 'pour rendre votre code un peu plus lisible. – emerssso