Как переключиться между двумя видимыми видами? - PullRequest
1 голос
/ 26 апреля 2020

Я делаю приложение, которое помогает выиграть в настольный теннис. Я нахожусь на последних этапах, но у меня возникают проблемы с переключением сервера каждые две точки Я много думал об этом, но я могу заставить его переключиться только один раз. Я знаю, что это, вероятно, простое решение, но оно просто не приходит ко мне.

Вот как я переключаю его один раз. Я использую счетчик каждый раз, когда нажимается кнопка, и когда она достигает числа, кратного 2, она переключается вправо. Однако использование этой логики c затрудняет переключение назад! Заранее спасибо.

    public void serveSwitch() {
    TextView leftServe = findViewById(R.id.leftServe);
    TextView rightServe = findViewById(R.id.rightServe);
    serverCount++;
    if (server.serve=="left") {
        if (serverCount % 2 == 0) {
            rightServe.setVisibility(View.VISIBLE);
            leftServe.setVisibility(View.GONE);
        }

    }

1 Ответ

3 голосов
/ 26 апреля 2020

Часть, с которой я борюсь - это логика c о том, как переключать видимость каждые две точки

Если я правильно понял вашу точку, вы хотите переключить видимость с отключить на каждые две точки и наоборот

Вы можете сделать что-то вроде:

...
if (server.serve=="left") {
    if (serverCount % 2 == 0) {

        switch (rightServe.getVisibility()) {
            case View.GONE:
                rightServe.setVisibility(View.VISIBLE);
                break;

            case View.VISIBLE:
                rightServe.setVisibility(View.GONE);
                break;
        }

        switch (leftServe.getVisibility()) {
            case View.GONE:
                leftServe.setVisibility(View.VISIBLE);
                break;

            case View.VISIBLE:
                leftServe.setVisibility(View.GONE);
                break;
        }

    }

}

Примечание: я оставил равенство как есть, как вы говорите, с ним проблем нет. но в целом вы должны использовать .equals() для сравнения строк в java.

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