Android开发ListView嵌套GridView,如何更加优化

我在ListView中嵌套GridView,效果实现了,但我在ListView的getView()中是
new GridViewAdapter(``````),也就是说我每一个大的ListView的Item都有去new
一个GridView的适配器,这样对内存不好。可我想通过notifyDataSetChanged()来
改变嵌套的GridView中的数据,一直实现不了。。。求高手解答···

用viewhoder,重用converview,holder中可以保存adapter等信息,不要每次都new

这样实现的效果就是一个横向的listview,你找找HorizontalListView,或者试试 gallery能不能实现你要的效果

重写ListView、gridView(推荐):

public class MyListView extends ListView {

public MyListView(Context context) {  
    // TODO Auto-generated method stub  
    super(context);  
}  

public MyListView(Context context, AttributeSet attrs) {  
    // TODO Auto-generated method stub  
    super(context, attrs);  
}  

public MyListView(Context context, AttributeSet attrs, int defStyle) {  
    // TODO Auto-generated method stub  
    super(context, attrs, defStyle);  
}  

@Override  
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
    // TODO Auto-generated method stub  
    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,  
            MeasureSpec.AT_MOST);  
    super.onMeasure(widthMeasureSpec, expandSpec);  
}  

}

/**

  • 自定义gridview,解决ListView中嵌套gridview显示不正常的问题(1行半)
  • @author wangyx
  • @version 1.0.0 2012-9-14
    */

    public class MyGridView extends GridView{

    public MyGridView(Context context, AttributeSet attrs) {

    super(context, attrs);

    }

    public MyGridView(Context context) {   
        super(context);   
    }   
    
    public MyGridView(Context context, AttributeSet attrs, int defStyle) {   
        super(context, attrs, defStyle);   
    }   
    
    @Override   
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   
    
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,   
                MeasureSpec.AT_MOST);   
        super.onMeasure(widthMeasureSpec, expandSpec);   
    }   
    

    }