首页 > 解决方案 > 如何在可见的两个视图之间切换?

问题描述

我正在制作一个有助于为乒乓球比赛打分的应用程序。我处于最后阶段,但在每两点切换服务器时遇到问题。我已经考虑了很多,但我只能让它切换一次。我知道这可能是一个简单的解决方案,但它只是没有来找我。

这是我切换一次的方式。每次按下按钮时我都在使用计数,当它达到可被 2 整除的数字时,它会向右切换。但是,使用这种逻辑很难切换回来!提前致谢。

    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);
        }

    }

标签: javaandroid

解决方案


我正在努力解决的部分是关于如何每两点切换可见性的逻辑

如果我的观点正确,您希望每两点将可见性从关闭切换到开启,反之亦然

您可以执行以下操作:

...
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 中的字符串时应该使用。


推荐阅读