2011-04-16 66 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,它的适配器首先被设置为加载适配器,并在加载时将其设置为正确的列表视图。