2012-07-13 114 views
0

我开发了一个应用程序,其中我在Gridview中显示数据。所有数据来自本地存储。我能够正确显示每个数据,并且没有任何问题。但是当我滚动Gridview并跳到底部并回到Top时,它会改变位置。有时当我向下滚动并返回顶部时,屏幕上会出现一个空白屏幕;根本没有数据! 所以我认为有getView()问题。我无法找出问题自定义gridview问题android

代码getView()的::

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    ViewHolder viewholder; 
    // LayoutInflater inflator = activit.getLayoutInflater(); 
    if(convertView == null) { 
     // recycled view is null so create it. 
     viewholder = new ViewHolder(); 
     convertView = inflator.inflate(R.layout.griedviewrow, null); 
     viewholder.imgvGridicon = (ImageView) convertView.findViewById(R.id.imgvGridicon); 
     viewholder.txtGridItemlabel = (TextView) convertView.findViewById(R.id.txtGridItemlabel); 
     convertView.setTag(viewholder); 
    } else { 
     viewholder = (ViewHolder) convertView.getTag();  
    } 
    if ((lstpinfo.get(position).appname.toString()) != null) { 
     viewholder.imgvGridicon.setImageDrawable((lstpinfo.get(position).icon)); 
     viewholder.txtGridItemlabel.setText(lstpinfo.get(position).appname.toString()); 
    } 
    return convertView; 
} 

更新:: Intitalize吹气::

private LayoutInflater inflator; 

    private ArrayList<PInfo> lstpinfo = new ArrayList<PInfo>(); 
    public GriedViewAdapter(Context cntx, ArrayList<PInfo> lstpinfo) { 

      activit = cntx; 
      inflator = LayoutInflater.from(cntx); 
      this.lstpinfo = lstpinfo; 

     } 
+0

'lstpinfo'是你本地的'List'还是你正在使用静态数组?我认为应该没有问题,其他'lstpinfo' – 2012-07-13 06:50:38

+0

@ user1381267请看我的回答,如果您有任何问题,请告诉我。 – 2012-07-13 06:51:32

+0

@MMohsinNaeem它没有问题的数据..但它的显示...所以它必须在getview – 2012-07-13 06:54:20

回答

0

的你必须设置您的视图高度与固定值。在android gridview中有一个不同高度的滚动错误。请参阅this以供参考。