我需要将xPos, yPos
的{{1}}数据传递给MainActivity
类,以便每次更改MyView
时都画一个圆圈。
这是我的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
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
字段。每当if语句为true时,我都需要传递static
和xPos
,然后根据yPos
的数据在onDraw
方法中绘制圆。任何帮助将不胜感激
答案 0 :(得分:1)
只需在您的视图中添加setXY()方法并从活动中调用它即可。在该方法内,检查(分配之前)新值是否与旧值不同,如果有,请调用invalidate(),这将使视图再次呈现。最后,将新值分配给视图的x和y变量。