如何将数据从 MainActivity 传递到 class extends View
How to pass data from MainActivity to class extends View
我需要将 xPos, yPos
数据从 MainActivity
传递到 MyView
class,以便在每次 xPos, yPos
发生变化时绘制圆圈。
这是我的一部分 MainActivity
:
if (!array.isEmpty()) {
xPos = new String();
yPos = new String();
myView = new MyView(context);
minIndex = array.indexOf(Collections.min(array));
xPos = checkXarray.get(array2.get(minIndex));
yPos = checkYarray.get(array2.get(minIndex));
}
和MyView
class:
public class MyView extends View {
public MyView(Context context) {
super(context);
}
int x = 800;
int y = 1200;
int radius = 20;
Paint paint;
public void setXY(String xPos, String yPos){
this.x = Integer.parseInt(xPos);
this.y = Integer.parseInt(yPos);
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawCircle(x,y, radius, paint);
}
xPos
和 yPos
被声明为 static
字段。我需要在每次 if 语句为真时传递 xPos
和 yPos
,然后根据来自 MainActivity
的数据在 onDraw
方法中绘制圆圈。任何帮助将不胜感激
只需将 setXY() 方法添加到您的视图并从 activity 调用它。在该方法中,检查(在赋值之前)新值是否与旧值不同,如果不同,则调用 invalidate() 使视图再次呈现自身。最后,将新值分配给视图的 x 和 y 变量。
我需要将 xPos, yPos
数据从 MainActivity
传递到 MyView
class,以便在每次 xPos, yPos
发生变化时绘制圆圈。
这是我的一部分 MainActivity
:
if (!array.isEmpty()) {
xPos = new String();
yPos = new String();
myView = new MyView(context);
minIndex = array.indexOf(Collections.min(array));
xPos = checkXarray.get(array2.get(minIndex));
yPos = checkYarray.get(array2.get(minIndex));
}
和MyView
class:
public class MyView extends View {
public MyView(Context context) {
super(context);
}
int x = 800;
int y = 1200;
int radius = 20;
Paint paint;
public void setXY(String xPos, String yPos){
this.x = Integer.parseInt(xPos);
this.y = Integer.parseInt(yPos);
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawCircle(x,y, radius, paint);
}
xPos
和 yPos
被声明为 static
字段。我需要在每次 if 语句为真时传递 xPos
和 yPos
,然后根据来自 MainActivity
的数据在 onDraw
方法中绘制圆圈。任何帮助将不胜感激
只需将 setXY() 方法添加到您的视图并从 activity 调用它。在该方法中,检查(在赋值之前)新值是否与旧值不同,如果不同,则调用 invalidate() 使视图再次呈现自身。最后,将新值分配给视图的 x 和 y 变量。