如何将数据从 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);
}

xPosyPos 被声明为 static 字段。我需要在每次 if 语句为真时传递 xPosyPos,然后根据来自 MainActivity 的数据在 onDraw 方法中绘制圆圈。任何帮助将不胜感激

只需将 setXY() 方法添加到您的视图并从 activity 调用它。在该方法中,检查(在赋值之前)新值是否与旧值不同,如果不同,则调用 invalidate() 使视图再次呈现自身。最后,将新值分配给视图的 x 和 y 变量。