2011-04-16 65 views
0

我想什麼:刷卡/(弗林)與動態視圖

我想添加一個刷卡或我所學到它的命名在Android上一扔,我的應用程序。 我有一個動態的視圖數量,數量是從我解析的ICS文件的日期數量,我想在所有這些視圖上一起滑動效果。 但是,如果我有12個這樣的每個都有8個項目(最大)的ListView它會使用大量的內存我猜。所以我希望只有當前選定的視圖前2和初始化2後。

我曾嘗試:

我在尋找我stumpled各地this stackoverflow question其中提到Horizo​​ntalPager。但我不知道如何使它與一些ListView的工作,並動態加載它們。

我嘗試了一個ViewGroup,然後添加和刪除一個ListView,但它不工作,這顯示是在一個ViewGroup而不是ListView控件

public class HourView extends ViewGroup 
{ 
    private ListView listView; 

    /** 
    * @param context 
    */ 
    public HourView(Context context) 
    { 
     super(context); 
     init(false); 
    } 

    /** 
    * 
    * @param context 
    * @param day the current day 
    */ 
    public HourView(Context context, String day, 
      boolean shouldBeVisible) 
    { 
     super(context); 
     this.day = day; 

     init(shouldBeVisible); 
    } 

     private void init(boolean shouldBeVisible) 
    {  
       if (shouldBeVisible) 
     { 
      listView = new ListView(getContext()); 

      if (day == null) 
      { 
       day = Event.dtFormatDay.format(new Date()); 
      } 

         new GetEvents(day).execute(); 
         addView(listView); 
        } 
        else 
        { 
         removeAllViews(); 
         listView = null;     
        } 
    } 
} 

的GetEvents()是的AsyncTask(在一個ViewGroup類中的一類)這得到了一些事件,從本地數據庫,代碼是onPostExecute如下

protected void onPostExecute(String errMsg) 
{ 
    if (errMsg != null) 
    { 
    listView.setAdapter(new SkemaHoursRowAdapter(getContext(), eventItems)); 
     listView.requestLayout(); 
     addView(listView, layoutParams); 
    } 
} 

eventItems是一個數組我分析我的自定義rowadapter(我知道的作品)。顯示視圖組,但listView不是。

有什麼建議?

回答

0

我結束了不使用視圖組,而是我做了一個loader-listapapter,如果正確的列表尚未更新,我會顯示。

因此,不是擴展ViewGroup它擴展了ListView,它的適配器首先被設置爲加載適配器,並在加載時將其設置爲正確的列表視圖。