Java 在另一个类中使用方法

Java 在另一个类中使用方法,java,android,android-studio,Java,Android,Android Studio,大家好,我是Java和Android新手,我需要你们的帮助。 我必须在另一个类中使用一个方法,但它不起作用,它说它在游戏类中的onDraw方法中找不到我的画布参数。 我怎样才能修好它? 以下代码可供您更好地了解情况: 这是我的绘图类,其中onDraw方法是: public class Draw extends View { public Draw(Context context) { super(context); } @Override

大家好,我是Java和Android新手,我需要你们的帮助。 我必须在另一个类中使用一个方法,但它不起作用,它说它在游戏类中的onDraw方法中找不到我的画布参数。 我怎样才能修好它? 以下代码可供您更好地了解情况:

这是我的绘图类,其中onDraw方法是:

public class Draw extends View {
    public Draw(Context context)
    {
        super(context);

    }

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        Rect rect = new Rect();
        rect.set(0,0, canvas.getWidth(), canvas.getHeight()/2 );
        Paint blue = new Paint();
        blue.setColor(Color.BLUE);
        blue.setStyle(Paint.Style.FILL);
        canvas.drawRect(rect,blue);
    }

}
这是我的游戏课程,我想在这里使用onDraw方法:

public class Game extends AppCompatActivity {

    private Draw draw;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);

        Canvas canvas;
        draw.onDraw(canvas);
    }

}

当您想使用另一个类时,必须首先从该类创建新对象。 如下所示,用于从类生成新对象:

public class Game extends AppCompatActivity {

Draw my_draw;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);

    //Generate new object from class
    my_draw = new Draw(Game.this);
    Canvas canvas;
    my_draw.onDraw(canvas);
}

按如下方式制作你的游戏课程:

public class Game extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new Draw(this));  //change on this line

    }

}

您能分享准确的错误吗?无法解析符号“canvas”您的绘图和canvas为空。你必须初始化它们first@Matnako在哪条线上?没有“修正”。我建议你学习如何正确地为Android应用程序创建自定义视图。只有当我用onCreate方法初始化画布时,它才会起作用,但它显示可疑的方法调用,并且它不会创建我的矩形:(我能做什么?我不知道你的代码,但我编写了在另一个类中使用类及其方法的基本法则。)