Android 调用扩展gridview类引发异常

Android 调用扩展gridview类引发异常,android,gridview,Android,Gridview,我试图在覆盖“layoutChildren()”的基础上更改GridView列的大小。 但当我给服装课打电话时,它抛出了一个例外 以下是适配器类中“Getview”的调用代码: public View getView (int position, View convertView, ViewGroup parent) { mParentView = parent; ImageCell v = null; if (convertView == null) {

我试图在覆盖“layoutChildren()”的基础上更改GridView列的大小。 但当我给服装课打电话时,它抛出了一个例外 以下是适配器类中“Getview”的调用代码:

public View getView (int position, View convertView, ViewGroup parent) 
{
    mParentView = parent;

    ImageCell v = null;
    if (convertView == null) {
        v = new ImageCell (mContext);
        v.setLayoutParams(new ResizeableGridView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        v.setScaleType(ImageView.ScaleType.CENTER_CROP);
        v.setPadding(40, 40, 40, 40);

    } else {
        v = (ImageCell) convertView;
    }

    v.mCellNumber = position;
    v.mGrid = (ResizeableGridView) mParentView;
    v.mEmpty = true;
    v.setBackgroundResource (R.color.cell_empty);
started.
    v.setOnTouchListener ((View.OnTouchListener) mContext);
    v.setOnClickListener ((View.OnClickListener) mContext);
    v.setOnLongClickListener ((View.OnLongClickListener) mContext);

    return v;
}
和“可调整大小的GridView”:


ViewGroup.LayoutParams params=view.getLayoutParams()这是导致异常的原因,您必须使用

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(your_height,your_width);
convertView.setLayoutParams(new GridView.LayoutParams(params));
如果容器是
LinearLayout

12-20 10:40:41.382: E/AndroidRuntime(2646): FATAL EXCEPTION: main
12-20 10:40:41.382: E/AndroidRuntime(2646): java.lang.ClassCastException: android.widget.GridView
12-20 10:40:41.382: E/AndroidRuntime(2646):     at com.package.mypackage.ImageCellAdapter.getView(ImageCellAdapter.java:81)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.AbsListView.obtainView(AbsListView.java:1592)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.GridView.onMeasure(GridView.java:955)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.view.View.measure(View.java:8313)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.view.View.measure(View.java:8313)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.view.View.measure(View.java:8313)
12-20 10:40:41.382: E/AndroidRuntime(2646):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(your_height,your_width);
convertView.setLayoutParams(new GridView.LayoutParams(params));