2016-03-08 83 views
1

我在BaseAdapter中使用不同布局的gridview。如果视图在那个时候被重用,我得到CastException。我该如何解决这个问题?在适配器中使用不同布局的Android DataBinding

我的适配器代码:

public View getView(int position, View v, ViewGroup parent) { 
    ViewHolder holder; 
    if (position == 0) { 
     if(v == null){ 
      TestItemBinding binding = DataBindingUtil. 
        inflate(LayoutInflater.from(mContext), R.layout.test_item, parent, false); 
      holder = new ViewHolder(); 
      holder.view = binding.getRoot(); 
     } else { 
      holder = (GridViewHolder) v.getTag(); 
     } 
    } else { 
     if(v == null){ 
      TestItem2Binding binding = DataBindingUtil. 
        inflate(LayoutInflater.from(mContext), R.layout.test2_item, parent, false); 
      holder = new ViewHolder(); 
      holder.view = binding.getRoot(); 
     } else { 
      holder = (GridViewHolder) v.getTag(); 
     } 
    } 
    setImage(holder.imageView, items.get(position)); 
    return v; 
} 
+0

您可以发布您的代码? –

回答

0

你不设置标签视图。您正在申请一个标签而不设置它。 加入这一行v.setTag(holder)你都行holder.view = binding.getRoot();

后,如果不工作,然后尝试v.setTag(holder.view)

相关问题