我用 Canvas 画了一些位图。这里一切都很好,我使用了一个类扩展 View 并使用构造函数 super(context, attributesset); 现在我想使用另一个类的方法,但如何让它工作,据我所知, View 扩展类需要这两个构造函数,它们必须设置为与 android 一起工作(我试图改变它,它告诉我它需要这样的构造函数,因为它扩展了 View )。
这是我的代码:
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 屏幕坐标 = 160; 整数 rectX = 10; 整数 rectY = 16;
String coordsFileName ="coordsData.txt";
public Load (Context context) {
this.context = context;
}
编辑:
我为遇到相同问题的每个人找到了解决方案。 例如,只需在扩展类中创建一个对象: 扩展类: //上面的构造函数从另一个类中声明对象
private OtherClass otherclass;
//在它的构造函数中你只是创建了一个新对象
this.otherclass = new OtherClass();
最佳答案
尝试创建您的 GameBoard
对象而不是从 XML 布局,而是在代码中,然后将其添加到您的布局。在这种情况下,您可以创建构造函数并传递所需的对象。您可以在 xml 中创建一个 FrameLayout
,然后将您的 View 添加到该布局。
关于android - 从类扩展 View 调用方法(使用构造函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16144032/