Как передать данные из MainActivity в класс расширяет View - PullRequest
0 голосов
/ 17 января 2019

Мне нужно передать xPos, yPos данные из 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 объявлены как static полей.Мне нужно передавать xPos и yPos каждый раз, когда утверждение if истинно, а затем рисовать окружность в методе onDraw на основе данных из MainActivity.Любая помощь будет оценена

1 Ответ

0 голосов
/ 17 января 2019

Просто добавьте метод setXY () в ваше представление и вызовите его из упражнения. Внутри метода проверьте (перед назначением), отличаются ли новые значения от старых, и, если это так, вызовите invalidate (), который заставит представление снова визуализироваться. Наконец, присвойте новые значения переменным x и y представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...