Android: Wie ändere ich das Datumsformat der DatePicker-Ansicht von MM / TT / JJJJ nach TT / MM / JJJJ?

8

Ich habe lange versucht, eine Antwort auf diese Frage zu bekommen. Ich habe mir auch folgenden Link angesehen: Android - DatePicker Widget Format . Auf meinem Telefon / Emulator (v 2.3.3) verwenden sowohl das DatePicker-Widget als auch der Dialog nicht das in den Einstellungen angegebene Datumsformat (Einstellungen- & gt; Datum & amp; Zeit- & gt; Datumsformat auswählen). Sie haben immer das Format "MM / TT / JJJJ". Das Gebietsschema ist auf Englisch UK eingestellt.

Ich bekomme "d / MM / jjjj", wenn ich die Einstellungen mit:

lese

Settings.System.getString(getContentResolver(), Settings.System.DATE_FORMAT);

Hat jemand eine Idee, wie man das Datumsformat in einer DatePicker-Ansicht ändert?

    
Ovid 26.08.2011, 18:00
quelle

2 Antworten

12

Um das DatePicker-Format zu überschreiben, wäre es am besten, einen seiner Konstruktoren mit einer leichten Änderung des ursprünglichen Codes zu überschreiben. Sie können die ViewGroup in Code für Sie bearbeiten, aber ich würde ernsthaft darüber nachdenken, es nicht so zu machen.

  1. Erstellen Sie die Klasse LocalizedDatePicker
  2. Überschreiben Sie public DatePicker (Kontext Kontext, AttributSet attrs, int defStyle) Ссылка , android.util.AttributeSet, int)
  3. Kopieren Sie den Code aus dem ursprünglichen DatePicker-Konstruktor (Möglicherweise müssen Sie nach einigen Tests einen anderen Zweig auswählen, ich habe den Kopf verknüpft)
  4. Überschreiben Sie Methoden, die reorderSpinners () aufrufen, um diesen Aufruf zu entfernen.
  5. Ersetzen Sie Zeile inflater.inflate(R.layout.date_picker, this, true); mit inflater.inflate(my.package.R.layout.localized_date_picker, this, true);
  6. Kopieren Sie das ursprüngliche date_picker.xml-Layout in Ihre lokale Ressource localized_date_picker.xml
  7. Bearbeiten Sie die Datei für die gewünschte Reihenfolge, da Sie diese bearbeiten, beachten Sie bitte die Lokalisierung anderer Orte und bewahren Sie eine Kopie des Originals in Ihrem globalen Layoutordner auf und legen Sie die Datei localized_date_picker.xml in Ihrem regionsspezifischen Ordner ab. Da das Layout des Systems "Monatstag" lautet, können Personen an anderen Orten diese Reihenfolge erwarten.
Dan S 26.08.2011, 18:20
quelle
3

Diese Einstellung ist sehr spezifisch. Es ist nur für Datumsangaben gedacht, die im "Kurzformat" angezeigt werden. Solange Sie noch etwas anderes verwenden (in diesem Fall scheint der DatePicker "Medium" zu verwenden), werden diese Einstellungen ignoriert und die Standardformatierung des Gebietsschemas wird übernommen.

Ich kann bestätigen, dass die Reihenfolge der Elemente in der Datumsauswahl geändert wird, wenn Sie die Sprache des Telefons (und effektiv die Ländereinstellung) ändern. Was ich denke, bedeutet, dass ich der Aussage von Dan S nicht zustimme, dass "das System keinen Mechanismus verwendet, um den DatePicker zu lokalisieren". Wenn Sie sich den Code ansehen, können Sie sehen, dass (mindestens seit 2.1) ein reorderPickers () Methode, die genau dies tut.

Englisch:  

Französisch:  

    
dmon 26.08.2011 19:30
quelle

Tags und Links