java - 如何使单个按钮在 Android 中显示为 Activity 状态

标签 java android

我学习java有一段时间了,正在开发一个Android应用程序。我正在尝试为嵌套在线性布局中的图像按钮实现一种 boolean 逻辑,其中只有一个按钮应该显示 Activity 按钮,而其他按钮则不显示。 目前,每个按钮都可以在 Activity 和非 Activity 之间切换,但我不希望有两个以上按钮同时显示 Activity 状态。我想要一个一次显示一个 Activity 按钮的按钮。

 public void showAudio(View view) {
        if (!audioButtonClicked) {
            audioButtonClicked = true;
            audioWindowButton.setImageResource(R.drawable.audio_active);
        } else {
            audioWindowButton.setImageResource(R.drawable.audio_inactive);
            audioButtonClicked = false;
        }

        }

    public void showEvents(View view) {
       if(!eventButtonClicked ) {
eventWindowButton.setImageResource(R.drawable.event_active);
           eventButtonClicked = true;
       } else {
           eventWindowButton.setImageResource(R.drawable.event_inactive);
           eventButtonClicked = false;
       }
    }

    public void showMore(View view) {
        if(!moreButtonClicked) {
            moreWindowButton.setImageResource(R.drawable.event_active);
            moreButtonClicked = true;

        } else {
            moreWindowButton.setImageResource(R.drawable.event_inactive);
            moreButtonClicked = false;
        }
    }

最佳答案

您可以使用button.setVisibility()更改其可见性。这是伪代码。

if() { // some condition when you want imageButton1 to be visibile and others invisible
    imageButton1.setVisibility(View.VISIBLE);     
    imageButton2.setVisibility(View.INVISIBLE);
    imageButton3.setVisibility(View.INVISIBLE);
} else if() { // some other condition when you want imageButton2 to be visibile and others invisible
    imageButton1.setVisibility(View.INVISIBLE);
    imageButton2.setVisibility(View.VISIBLE);
    imageButton3.setVisibility(View.INVISIBLE);
} else { // when you want imageButton3 to be visibile and others invisible
    imageButton1.setVisibility(View.INVISIBLE);
    imageButton2.setVisibility(View.INVISIBLE);
    imageButton3.setVisibility(View.VISIBLE);
}

使用上述逻辑:

public void showAudio(View view) {
        if (!audioButtonClicked) {
            audioButtonClicked = true;
            eventButtonClicked = false;
            moreButtonClicked = false;
            audioWindowButton.setImageResource(R.drawable.audio_active);
            eventWindowButton.setImageResource(R.drawable.event_inactive);
            moreWindowButton.setImageResource(R.drawable.event_inactive);
        } else {
            audioWindowButton.setImageResource(R.drawable.audio_inactive);
            audioButtonClicked = false;
        }
}

public void showEvents(View view) {
        if(!eventButtonClicked ) {
            audioButtonClicked = false;
            eventButtonClicked = true;
            moreButtonClicked = false;
            audioWindowButton.setImageResource(R.drawable.audio_inactive);
            eventWindowButton.setImageResource(R.drawable.event_active);
            moreWindowButton.setImageResource(R.drawable.event_inactive);
        } else {
           eventWindowButton.setImageResource(R.drawable.event_inactive);
           eventButtonClicked = false;
        }
}

public void showMore(View view) {
        if(!moreButtonClicked) {
            audioButtonClicked = false;
            eventButtonClicked = false;
            moreButtonClicked = true;
            audioWindowButton.setImageResource(R.drawable.audio_inactive);
            eventWindowButton.setImageResource(R.drawable.event_inactive);
            moreWindowButton.setImageResource(R.drawable.event_active);

        } else {
            moreWindowButton.setImageResource(R.drawable.event_inactive);
            moreButtonClicked = false;
        }
}

仅当功能启用而其他功能禁用时才会显示。如果启用其中任何一项功能,则其他两项功能将被禁用,但如果仅禁用一项功能,则其他功能不会更改。

关于java - 如何使单个按钮在 Android 中显示为 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44980133/

相关文章:

java - 保持子类中抽象方法的可见性

java - 改造成功电话

android - android surfaceview在调整大小时崩溃

android - 使用自定义 ConnectionService 和 PhoneAccount 时拨出电话不会响铃

java - 如何做整数对的集合?

Java 注释 - 标识符或类型名称

Java 应用程序随着时间的推移变得缓慢

android - 您通常如何标记日志条目? (安卓)

java - 在 MacOS 上的 AdoptOpenJDK 上链接 JNA 库时出错

android - 如何在启用 gdb 跟踪的情况下从源代码为 Android 构建 Libgdx.so?