Ich habe eine Aktivität in meiner App, wo ich möchte, dass der Benutzer das Datum aus einem DatePicker auswählen, der in einem AlertDialog enthalten ist. Im AlertDialog habe ich eine Sicht auf eine XML-Layout-Datei (, die nur eine LinearLayout enthält, mit einem einzigen DatePicker.Android Studio - DatePicker in AlertDialog, Nullobjekt Referenz
) Der Code ist wirklich einfach und sieht so aus, direkt unter 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()
das Layout zeigt in dem Alertdialog auf, und dieser Teil funktioniert super. Allerdings, wenn ich versuche, diese Zeile hinzufügen, ich habe einen null-Objekt Referenz-Fehler.
datePicker.setMinDate(System.currentTimeMillis() - 1000);
Hier ist der Fehler Nachricht:
Versuch virtuelle Methode 'Leere android.widget.DatePicker.setMinDate (long)' auf einer Null-Objekt Referenz
Wie kann ich dieses Problem beheben zu berufen, oder meinen Code in einer anderen Art und Weise zu verbessern? Ich schätze wirklich alle Hilfe, die ich bekommen kann. Vielen Dank!
Wo Versuchen Sie, diese Zeile 'datePicker.setMinDate (System.currentTimeMillis() - 1000) zu verwenden;'? Ist 'datePicker' im Geltungsbereich? – DigitalNinja
Es ist die nächste Zeile. Das ist alles in einer Methode, die ich am Ende von onCreate() anrufe. Also rufe ich die Methode in der Zeile unterhalb von setContentView (...) – Fred
Nebenbemerkung zur Frage: Sie können Ihre AlertDialog.Builder-Aufrufe verketten, dh 'AlertDialog.Builder (this) .setView (R.layout.my_layout) .setButtonPositive (R.string.sweet_text) .create(). show() ', um Ihren Code etwas lesbarer zu machen. – emerssso