Gridview适配器在横向上的不同行为

时间:2015-11-05 13:28:55

标签: android gridview android-adapter android-gridview

我在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的覆盖方法。

1 个答案:

答案 0 :(得分:0)

每次尝试intilaize convertView ,,, 这意味着不要使用

if(convertView == null){

}