我在4x2网格中有8个项目的gridview。 这是我的适配器代码:
public View getView(int position, View convertView, ViewGroup parent) {
CustomCell v;
Log.d("position: ", " " + position + " " + convertView);
if(convertView == null)
{
switch (position){
case 3:
v = new CustomCellExercise(mContext);
break;
case 5:
v = new CustomCellDrink(mContext);
break;
case 7:
v = new CustomCellSleep(mContext);
break;
default:
v = new CustomCell(mContext);
break;
}
}
else{
v = (CustomCell)convertView;
}
//Some text and color settings
return v;
}
当我在纵向屏幕上使用它时它工作正常,最后一项有“CustomCellSleep”类。但是,当我将屏幕切换到横向模式时,适配器永远不会进入“案例7”,最后一个项目具有“CustomCell”类。我使用这个解决方案是因为,Exercise,Drink和Sleep单元具有不同的功能和来自CustomCell的覆盖方法。
答案 0 :(得分:0)
每次尝试intilaize convertView ,,, 这意味着不要使用
if(convertView == null){
}