1

我用画布画了一些位图。一切都很好,我使用了一个类扩展视图并使用构造函数 super(context, attributeset); 现在我想使用另一个类的方法,但是如何让它工作,据我所知,视图扩展类需要这两个构造函数,它们必须设置为与 android 一起使用(我试图改变它,它告诉我它需要像这样的这些构造函数,因为它扩展了视图)。

这是我的代码:

public class GameBoard extends View{

    private static final String tag = "GameBoard";

    private Paint p;
    private Load load;

    public GameBoard(Context context, Load load) {

            super(context);
            p = new Paint();
            this.load = load;

//这个类还有很多,但这里不重要。

     }

这是另一类:

public class Load{

Context context;

// TODO 从文件中加载这些信息并使纹理适合手机屏幕尺寸 int mSize = 99; 整数 tSize = 48; int screenCoords = 160; int rectX = 10; int rectY = 16;

String coordsFileName ="coordsData.txt";

public Load (Context context) {
    this.context = context;
}

编辑:

我为每个有同样问题的人找到了解决方案。只需在扩展类中创建一个对象,例如:扩展类://上面的构造函数声明对象关闭其他类

private OtherClass otherclass;

//并且在它的构造函数中你只需要创建一个新对象

this.otherclass = new OtherClass();
4

2 回答 2

1

尝试GameBoard不是从 XML 布局创建对象,而是在代码中创建对象,然后将其添加到您的布局中。在这种情况下,您可以创建构造函数并传递您需要的对象。您可以在 xml 中创建一个FrameLayout,然后将您的视图添加到该布局中。

于 2013-04-22T10:13:01.853 回答
1

我还没有创建我想要的类的新对象,所以我不需要将它过度交给构造函数:

public class GameBoard extends View{

private static final String tag = "GameBoard";

private Paint p;
private Load load;

public GameBoard(Context context) {

        super(context);
        p = new Paint();
        load = new Load();
于 2013-05-03T18:40:48.863 回答