2017-03-25 3 views
7

Teile meiner alten App sind veraltet, ich versuche, es neu zu erstellen. Grundsätzlich ist es ein Kalender mit Monatsansicht. Dies ist ein Teil meiner Gridview-Adapter:GridView für Kalenderansicht

public View getView(int position, View view, ViewGroup parent) { 
    Date date = getItem(position); 
    int day = date.getDate(); 
    int month = date.getMonth(); 
    int year = date.getYear(); 
} 

und die int day = date.getDate(); int month = date.getMonth(); int year = date.getYear(); sind veraltet. Ich versuche, die Calendar Klasse anstelle von Date zu verwenden, aber nicht in der Lage, das gleiche zu tun. Ich weiß, dass der Tag, Monat oder Jahr für abrufen ich diese verwenden:

Calendar calendar = Calendar.getInstance(); 
calendar.get(Calendar.DAY_OF_MONTH); 

aber ich weiß nicht, wie diese Zeile zu konvertieren:

Date date = getItem(position); 

für mit Calendar verwenden.

Antwort

1

Hier ist, wie Sie ein Date Objekt zu einem Calendar Objekt konvertieren:

Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 

Dann (wie Sie gesagt haben) können Sie tun:

int day = cal.get(Calendar.DAY_OF_MONTH); 
int month = cal.get(Calendar.MONTH) 
int year = cal.get(Calendar.YEAR); 
+0

Ok danke, also kann es nicht "nativ" gemacht werden, ohne Date-Objekt nur mit Kalender-Objekt zu verwenden? –

+0

Kein Problem. Wenn Sie "Date" nicht verwenden möchten, müssen Sie Ihre Adapterdatei in "Calendar" ändern und "getItem()' '' '' '' zurückgeben. – 345

2

Sie diese Codezeile verwenden:

Ersetzen Sie einfach diese Zeile

Date date = getItem(position); 

mit dieser Zeile:

Calendar calendar = Calendar.getInstance(); 
Date date = calendar.getTime(); 

Hier ist ein vollständiges Beispiel für Sie:

Calendar calendar = Calendar.getInstance(); 
Date date = calendar.getTime(); 
int day = calendar.get(Calendar.DAY_OF_MONTH); 
int month = calendar.get(Calendar.MONTH); 
int year = calendar.get(Calendar.YEAR); 
1

Zuerst du wirst Kalender verweisen möchten. Sobald Sie das getan haben, können Sie Date date = calendar.getTime

public View getView(int position, View view, ViewGroup parent) { 
    Calendar calendar = Calendar.getInstance(); 
    Date date = calendar.getTime(); 
    int day = calendar.get(Calendar.DAY_OF_MONTH); 
    int month = calendar.get(Calendar.MONTH)  
    int year = calendar.get(Calendar.YEAR); 
} 
1
sagen

der Suche nach einer Antwort Zeichnung von glaubhafte und/oder offiziellen Quellen.

Ok

Um wichtige Quellen:

  1. https://docs.oracle.com/javase/7/docs/api/java/util/Date.html

  2. https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

Date ist nicht veraltet. Nur einige Methoden.

So

public View getView(int position, View view, ViewGroup parent) { 

    Date date = getItem(position); 
    long ms = date.getTime();https://docs.oracle.com/javase/7/docs/api/java/util/Date.html#getTime() 
    Calendar calendar = Calendar.getInstance();//allowed 
    calendar.setTimeInMillis(ms);//allowed https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#setTimeInMillis(long) 
    //calendar.setTime(date); is also allowed https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#setTime(java.util.Date) 
    int day = calendar.get(Calendar.DAY_OF_MONTH);//allowed 
    int month = calendar.get(Calendar.MONTH);//allowed 
    int year = calendar.get(Calendar.YEAR);//allowed 
} 
0

Hier ist der Beispielcode von Date zu Calendar zu konvertieren.

public View getView(int position, View view, ViewGroup parent) { 
    Date date = getItem(position); 
    // convert a Date object to a Calendar object 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(date); 

    int day = calendar.get(Calendar.DAY_OF_MONTH); 
    int month = calendar.get(Calendar.MONTH); 
    int year = calendar.get(Calendar.YEAR); 
}