在另一个 class Android 中使用一个方法
Use a method inside another class Android
大家好,我是 Java 和 Android 的新人,我需要你们的帮助。
我必须在另一个 class 中使用一个方法,但它不起作用,它说它无法在游戏 class 的 onDraw 方法中找到我的 canvas 参数。
我该如何解决?
这是您可以更好地了解情况的代码:
这是我的 Draw class 其中 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);
}
}
这是我的 Game class,我想在其中使用 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);
}
}
如果您想使用另一个 class,您必须先从 class 创建新对象。
像这样从您的 class 生成新对象:
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);
}
让你的游戏Class如下:
public class Game extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new Draw(this)); //change on this line
}
}
大家好,我是 Java 和 Android 的新人,我需要你们的帮助。 我必须在另一个 class 中使用一个方法,但它不起作用,它说它无法在游戏 class 的 onDraw 方法中找到我的 canvas 参数。 我该如何解决? 这是您可以更好地了解情况的代码:
这是我的 Draw class 其中 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);
}
}
这是我的 Game class,我想在其中使用 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);
}
}
如果您想使用另一个 class,您必须先从 class 创建新对象。 像这样从您的 class 生成新对象:
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);
}
让你的游戏Class如下:
public class Game extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new Draw(this)); //change on this line
}
}