我学习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/