2017-03-25 26 views
7

Eski uygulamamın parçaları kullanımdan kaldırıldı, yeniden oluşturmaya çalışıyorum. Temelde ay görünümü olan bir takvimdir.Takvim görünümü için GridView

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(); 
} 

ve int day = date.getDate(); int month = date.getMonth(); int year = date.getYear(); kaldırıldı: Bu benim gridview adaptörün bir parçasıdır. Date yerine Calendar sınıfını kullanmaya çalışıyorum ama aynısını yapamıyorum. Ben gün, ay veya yıl almak için bunu kullanabilir biliyoruz:

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

ama bu çizgiyi dönüştürmek için nasıl bilmiyorum:

Date date = getItem(position); 

Calendar ile kullanmak için. (Dediğin gibi) Ardından

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

Yapabileceğiniz:

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

cevap

1

Bir Calendar nesneye bir Date nesneyi dönüştürmek nasıl

Bu satırı değiştir

Date date = getItem(position); 
Bu hat ile

: Burada

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

sizin için tam bir örnektir:

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); 
+0

Teşekkür ederiz, bu nedenle Date nesnesini yalnızca Takvim nesnesini kullanmadan "yerel olarak" yapamazsınız. –

+0

Sorun yok. Eğer 'Tarih'i kullanmak istemiyorsanız, adaptör verilerinizi 'Takvime' olarak ayarlamalısınız ve' getItem() 'Takvimi döndür 'yapmalısınız. – 345

2

Sen bu kod satırını kullanabilirsiniz: Burada

1

İlk mısın Takvim başvurmak istiyorsunuz. Bunu yaptıktan sonra, güvenilir ve/veya resmi kaynaklardan çizim bir cevap arıyorsunuz 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

söyleyebiliriz. önemli kaynaklardan için

Tamam

:

  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 kaldırılmış değildir. Sadece bazı yöntemler.

Yani,

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

İşte Date den Calendar dönüştürmek için örnek kod verilmiştir.

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); 
}