Упростить код условия
Есть код, который в зависимости от значения или заставляет мигать иконку, или скрывает её. Помогите упростить и более правильнее и лаконичнее переписать его
if (_belt_left) {
if (belt_left.getVisibility() == View.VISIBLE) {
belt_left.setVisibility(View.INVISIBLE);
} else {
belt_left.setVisibility(View.VISIBLE);
}
} else {
if (belt_left.getVisibility() == View.VISIBLE || belt_left.getVisibility() == View.INVISIBLE) {
belt_left.setVisibility(View.GONE);
}
}
Ответы (3 шт):
Автор решения: Arty Morris
→ Ссылка
Нашёл вариант более ёмкий
if (_belt_left) {
belt_left.setVisibility(belt_left.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE);
} else {
if (belt_left.getVisibility() == View.VISIBLE || belt_left.getVisibility() == View.INVISIBLE) {
belt_left.setVisibility(View.GONE);
}
}
Автор решения: Anton Shchyrov
→ Ссылка
Я бы написал так
if (_belt_left) {
if (belt_left.getVisibility() == View.VISIBLE) {
belt_left.setVisibility(View.INVISIBLE);
} else {
belt_left.setVisibility(View.VISIBLE);
}
} else {
belt_left.setVisibility(View.GONE);
}
void setVisibility(View view) {
if (view != this.view) {
........
}
}
Автор решения: Эникейщик
→ Ссылка
Если всего три состояния, то
belt_left.getVisibility() == View.VISIBLE || belt_left.getVisibility() == View.INVISIBLE
равнозначно
belt_left.getVisibility() != View.GONE