private void clean(View v) {
ColorDrawable color = new ColorDrawable(ContextCompat.getColor(this,R.color.white));
if (v.getId() == R.id.nav_news){
nav_feed_bg.setBackground(color);
nav_profile_bg.setBackground(color);
nav_chat_bg.setBackground(color);
nav_books_bg.setBackground(color);
} else if (v.getId() == R.id.nav_feed){
nav_news_bg.setBackground(color);
nav_profile_bg.setBackground(color);
nav_chat_bg.setBackground(color);
nav_books_bg.setBackground(color);
} else if (v.getId() == R.id.nav_profile){
nav_feed_bg.setBackground(color);
nav_news_bg.setBackground(color);
nav_chat_bg.setBackground(color);
nav_books_bg.setBackground(color);
} else if (v.getId() == R.id.nav_chat){
nav_feed_bg.setBackground(color);
nav_profile_bg.setBackground(color);
nav_news_bg.setBackground(color);
nav_books_bg.setBackground(color);
} else if (v.getId() == R.id.nav_books){
nav_feed_bg.setBackground(color);
nav_profile_bg.setBackground(color);
nav_chat_bg.setBackground(color);
nav_news_bg.setBackground(color);
}
}
Как я могу упростить это утверждение? Есть 5 видов, если вызывается один вид. Мы должны установить белый фон для других видов с белым цветом Bg
Редактировать:
@Override
public void onClick(View v) {
Drawable shadow;
switch (v.getId()) {
case R.id.nav_news:
Utils.sToast(this, "NavBar Item Clicked 1");
shadow = getDrawable(R.drawable.shadow_bg_nav);
clean(v);
nav_news_bg.setBackground(shadow);
break;
case R.id.nav_feed:
Utils.sToast(this, "NavBar Item Clicked 2");
shadow = getDrawable(R.drawable.shadow_bg_nav);
clean(v);
nav_feed_bg.setBackground(shadow);
break;
... Other Statements Here
}
Они могут быть полезны для ответов. Я всегда стараюсь оптимизировать свой код, но некоторые подобные заявления делают уродливые повторяющиеся блоки