0

嘿伙计们,我在 MainActivity 中尝试创建视图时遇到错误。下面我提供了一些来自我的自定义 GridView 和 Activity 的代码。出于某种原因,当我尝试将参数传递到 MainActivity 的 OnCreate 中的 GridView 时,我在 Eclipse 中收到以下错误:

构造函数 GridView(this, Cell[][]) 未定义

但是在我的 GridView 类中,我显然提供了这样的构造函数。不确定是什么问题。我什至声明了额外的构造函数,因为有人建议过,但没有运气。我是在声明上下文正确还是在 XML 方面需要做些什么?有人可以告诉我我做错了什么吗?谢谢

自定义 GridView 布局:

public class GridView extends View {

    Context context;
    private Cell[][] grid; //Cell class - is an interface

    //constructors
    public GridView (Context context){
        super(context);
    }

    public GridView (Context context, AttributeSet attrs, int defStyle){
        super(context, attrs);
    }

    public GridView (Context context, AttributeSet attrs){
        super(context, attrs);
    }


    public GridView(Context context, Cell[][] grid) {
        super(context);
        this.context = context;
        this.grid = grid;
        //...more stuff
    }
    //...more stuff
}

主要活动:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;

    Cell[][] grid = new Cell[height][width];
    final GridView view = new GridView(this, grid);

    //...more stuff

}
//...more stuff 

}

4

1 回答 1

0

我认为您的问题是您使用的类名已在 Android ( android.widget.GridView) 中实现,因此当您调用该类的构造函数时,编译器可能会混淆它们。

将您的实现重命名为系统唯一的名称(MyGridView例如)或专门调用您的类名,包括您的包名(Your.Namespace.GridView

于 2013-04-29T15:14:31.297 回答