在另一个Android类中使用一个方法

时间:2016-03-13 16:26:18

标签: java android android-studio

大家好我是Java和Android的新手,我需要你的帮助。 我必须在另一个类中使用一个方法,但它不起作用,它说它无法在Game类中的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);
    }

}

2 个答案:

答案 0 :(得分:2)

按照以下方式制作游戏类:

public class Game extends AppCompatActivity {

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

    }

}

答案 1 :(得分:0)

如果要使用其他类,则必须先从类创建新的Object。 像这样从你的类中生成新对象:

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);
}