Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using findViewById more effeciently

Tags:

java

android

I am currently using the following code and wondering if there is a more effecient way of doing this via a function?

showDisplay = (LinearLayout)findViewById(R.id.display1);
if (isA)
{ 
{ showDisplay.setVisibility(0);}
else
{ showDisplay.setVisibility(8); }


showDisplay = (LinearLayout)findViewById(R.id.display2);
if (isB)
{ showDisplay.setVisibility(0);}
else
{ showDisplay.setVisibility(8); }

showDisplay = (LinearLayout)findViewById(R.id.display3);
if (isC)
{ showDisplay.setVisibility(0);}
else
{ showDisplay.setVisibility(8); }
like image 996
bebeTech Avatar asked Mar 16 '26 06:03

bebeTech


1 Answers

I usually have a bunch of helpers for setting common properties like visibility, text, etc. It makes the code look prettier.

setChildVisibility(R.id.display1, isA);
setChildVisibility(R.id.display2, isB);
setChildVisibility(R.id.display3, isC);

With the helper being :

protected void setChildVisibility(int id, boolean visible) {
    View view = findViewById(id);
    if (view != null) {
        view.setVisibility(visible?View.VISIBLE:View.GONE);
    }
}
like image 80
Reuben Scratton Avatar answered Mar 17 '26 20:03

Reuben Scratton



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!