2012-06-16 51 views
0

我想在我的應用程序中動態創建ExpandableListView。父行顯示未來7天的日期,並從Web服務中檢索這些孩子。但是,抓取和展示孩子不是我的問題。我在動態顯示父行時遇到了麻煩。我需要在父行中顯示未來7天的日期。動態創建ExpandableListView

我全局聲明的字符串這個空數組。

private String[] parent = new String[7]; 

然後,在onCreate()中,我使用這段代碼來創建父數組的內容。

Calendar cal = Calendar.getInstance(); 
    String strdate = null; 
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 

    int i; 
    for(i=0;i<7;i++) 
    { 

     if (cal != null) { 
      strdate = sdf.format(cal.getTime()); 
      } 
      parent[i] = strdate; 
      cal.add(Calendar.HOUR_OF_DAY, 24); 
    } 

但是,該活動在MyExpandableListAdapter.getGroupView()上給出了NullPointerException。

(也許是因爲父陣列並沒有最初初始化?)

,因爲當我initally聲明父數組

private String[] parent = new String[] {"","","".....}; 
+1

不知道這是你的問題的原因,但你創建你的日期字符串錯誤。首先你給'cal'加上0小時(24 * 0),然後你加24,48,72等等。然而,這是累積的,所以你會得到今天,明天,明天后2天,明天5天后等。嘗試添加'date'並將'i'離開它...'cal.add(Calendar.DATE,1)' - 如果它超過當前月份的末尾,也應該翻轉「MONTH」 。 – Squonk

+0

感謝您指出。我停止把它放大。當我最初聲明父數組時,字符串顯示正確,但我希望動態完成。 – Swayam

回答

0

我的解決方案的代碼工作:靜塊就是答案到它。我把代碼創建在一個靜態塊內的父數組內容而不是onCreate(),它現在就像一個魅力。