Ich möchte ein Datepicker-Popup-Fenster anzeigen. Ich habe einige Beispiele gefunden, aber ich verstehe es nicht richtig. Ich habe einen Edittext und möchte, dass beim Klicken auf Edittext das Dialogfeld "Datumsauswahl" angezeigt wird und nach dem Einstellen des Datums das Datum im Edittext im Format TT / MM / JJJJ angezeigt wird. Bitte geben Sie mir Beispielcode oder gute Links.
android
android-datepicker
Surabhi Pandey
quelle
quelle
Antworten:
Versuchen Sie dies in der XML-Datei:
Jetzt in der Java-Datei:
Fügen Sie nun die Methode in der obigen Aktivität hinzu.
Fügen Sie
android:focusable="false"
innerhalb der XML-Datei des EditText eine einzelne Berührung hinzu.quelle
android:focusable="false"
und gelöstonclicklistner
android:longClickable="false"
. Andernfalls kann der Benutzer die Einfügeoption im Feld aufrufen (und somit ungültige Daten eingeben).Konnte niemanden zum Laufen bringen, also füge meinen hinzu, nur für den Fall, dass es hilft.
Auch etwas, das in den anderen nicht erwähnt wird. Stellen Sie sicher, dass Sie Folgendes in EditText xml einfügen.
Ansonsten taucht wie in meinem Fall die Tastatur immer wieder auf. Hoffe das hilft jemandem
quelle
quelle
Es gibt noch einen anderen besser wiederverwendbaren Weg:
Erstellen Sie eine Klasse:
Rufen Sie dann diese Klasse unter der Funktion onCreate auf:
quelle
class setDate implements View.OnFocusChangeListener, DatePickerDialog.OnDateSetListener {
?JAVA-DATEI
quelle
So mache ich das: Ähnlich wie bei der gewählten Antwort, aber mit einer statischen Dialogklasse, damit sie wiederverwendbarer ist, und mit onFocusChange anstelle von onClick.
Und der Datepicker-Dialog.
quelle
Die ausgewählte Antwort funktionierte für mich nicht ganz, da ich einmal auf das EditText-Feld tippen und dann erneut darauf tippen musste, bevor der OnClickListener ausgelöst wurde. Ich konnte dies beheben, indem ich OnClickListener durch OnTouchListener ersetzte. Für den Fall, dass jemand auf ein ähnliches Problem gestoßen ist, sieht mein Code folgendermaßen aus:
quelle
# 1. Ich möchte einen Datepicker mit dem aktuellen Datum als vorausgewählt anzeigen (ich verwende Buttermesser zur Injektion).
2. Wenn Sie das Datum vorwählen möchten, ersetzen Sie den letzten Teil durch
Dann können Sie es mit der Variablen myCalendar oder direkt mit dem Text in Ihrer Ansicht abrufen.
quelle
Eine Lösung mit Fragmenten, MvvmCross und Xamarin.Android
quelle
quelle
Meine Klasse für die Show
DatePicker
. Ich kann für verwendenEditText
,TextView
oderButton
Verwenden von
quelle
Verwenden von DataBinding:
(siehe
focusable
,inputType
undonClick
)Inside ViewModel:
quelle
Verwendungszweck:
quelle
Verwenden Sie dazu diese einfache Technik:
Schritt 1: ERSTELLEN SIE EINEN FRAGMENT-DIALOG
Schritt 2: BEI ERFORDERLICHER AKTIVITÄT FOLGEN SIE DIESEM
Die Aktivität muss Folgendes implementieren: DatePickerDialog.OnDateSetListener
Setzen Sie onClickListener auf eine Schaltfläche:
Schritt 3: OnDateSetListener überschreiben
Daher können wir jede Formatierung für das Datum verwenden :)
quelle
Ich habe jeden vorgeschlagenen Weg ausprobiert, aber alle haben ihre eigenen Probleme.
Die beste Lösung wäre meiner Meinung nach die Verwendung eines Rahmenlayouts wie folgt:
und dann den DatePickerDialog- Code hinzufügen, der wunderschön in der Antwort von @ Android geschrieben wurde.
quelle
Ich fand es besser, die EditText-Klasse zu überschreiben ...
Und verwenden Sie das stattdessen im XML ...
quelle
quelle
Benutze das
quelle
Kotlin-Port, rufen Sie die Funktion setDatePicker auf
quelle
quelle
Versuche dies
quelle
editText.setOnClickListener (neuer View.OnClickListener () {
quelle
Datumsauswahldialog
quelle
Versuche dies:
quelle
Mit diesen Anweisungen können Sie auch das Mindest- und das Höchstdatum festlegen.
Hinweis: Fügen Sie diese Zeile vor datepickerDialog.show () hinzu. Aussage erhalten Sie Datum wie folgt = 02.12.2017.
Ich hoffe meine Antwort wird helfen.
quelle
Das hat bei mir im Januar 2020 funktioniert
XML-Teil:
Java-Teil:
quelle
Hier ist eine Kotlin-Erweiterungsfunktion:
Verwendungszweck:
In Aktivität:
In Fragmenten:
quelle
Meine Lösung für Xamarin.Android mit MvvmCross basierend auf Linhs:
Für eine Vanilla Xamarin.Android-Version ersetzen Sie einfach das WeakSubscribe durch ein reguläres Abonnement für das Click-Ereignis von EditText, ohne zu vergessen, dass Sie sich beim Überschreiben der Dispose-Methode abmelden.
quelle