从类扩展视图中调用方法(使用构造函数)

时间:2013-04-22 09:47:46

标签: android view constructor call extends

我用canvas绘制了一些位图。这里一切都很好,我使用了一个类扩展视图并使用构造函数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;     int 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();

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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();