android - 从类扩展 View 调用方法(使用构造函数)

标签 android view constructor call extends

我用 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/

相关文章:

添加时java arraylist空指针异常

java - 从构造函数分配 Final 变量 |方法不允许。为什么?

android - 跨平台使用 libsodium

Android:点击时需要Mopub广告在WebView中打开

C++构造函数继承(从派生类调用构造函数)

python - 我什么时候应该在 Django 中使用 user.get_profile?

sql - 甲骨文:选择并行条目

android - 在 Android 中操作自定义 GLSurfaceView

android - Gradle resValue 导致重复的字符串资源

visual-studio-2010 - 我可以让 Visual Studio 将花括号与 if 语句(在 HTML 中)放在同一行吗?