Android studio object visibility

3

Good morning. I just started in the world of mobile development, I'm trying to make a simple app. It has a pair of ImageView which with a button I want to go putting visible or hide them. If I press the button once the first image becomes visible, if I press the button again the first and second images will be visible and so on.

The problem is that by pressing directly all the images are visible at the same time.

public void mostrar_contadores ()
{
        ImageView fosforo1 = (ImageView) findViewById(R.id.imageView);
        ImageView fosforo2 = (ImageView) findViewById(R.id.imageView2);
        ImageView fosforo3 = (ImageView) findViewById(R.id.imageView3);
        ImageView fosforo4 = (ImageView) findViewById(R.id.imageView4);
        ImageView fosforo5 = (ImageView) findViewById(R.id.imageView5);

    switch (contador1) {
        case 0: {
            fosforo1.setVisibility(View.INVISIBLE);
            fosforo2.setVisibility(View.INVISIBLE);
            fosforo3.setVisibility(View.INVISIBLE);
            fosforo4.setVisibility(View.INVISIBLE);
            fosforo5.setVisibility(View.INVISIBLE);
        }
        case 1:
            fosforo1.setVisibility(View.VISIBLE);
            fosforo2.setVisibility(View.GONE);
            fosforo3.setVisibility(View.GONE);
            fosforo4.setVisibility(View.GONE);
            fosforo5.setVisibility(View.GONE);

        case 2:{
            fosforo1.setVisibility(View.VISIBLE);
            fosforo2.setVisibility(View.VISIBLE);
            fosforo3.setVisibility(View.INVISIBLE);
            fosforo4.setVisibility(View.INVISIBLE);
            fosforo5.setVisibility(View.INVISIBLE);
        }
        case 3:{
            fosforo1.setVisibility(View.VISIBLE);
            fosforo2.setVisibility(View.VISIBLE);
            fosforo3.setVisibility(View.VISIBLE);
            fosforo4.setVisibility(View.INVISIBLE);
            fosforo5.setVisibility(View.INVISIBLE);
        }
        case 4:{
            fosforo1.setVisibility(View.VISIBLE);
            fosforo2.setVisibility(View.VISIBLE);
            fosforo3.setVisibility(View.VISIBLE);
            fosforo4.setVisibility(View.VISIBLE);
            fosforo5.setVisibility(View.INVISIBLE);
        }
        case 5:{
            fosforo1.setVisibility(View.VISIBLE);
            fosforo2.setVisibility(View.VISIBLE);
            fosforo3.setVisibility(View.VISIBLE);
            fosforo4.setVisibility(View.VISIBLE);
            fosforo5.setVisibility(View.VISIBLE);
        }
    }
}

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //BOTONES
    Button btnmas1 = (Button) findViewById(R.id.btnmas1);
    btnmas1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            suma_contador1();
        }
    });

    ImageView fosforo1 = (ImageView) findViewById(R.id.imageView);
    fosforo1.setVisibility(View.INVISIBLE);

    ImageView fosforo2 = (ImageView) findViewById(R.id.imageView2);
    fosforo2.setVisibility(View.INVISIBLE);

    ImageView fosforo3 = (ImageView) findViewById(R.id.imageView3);
    fosforo3.setVisibility(View.INVISIBLE);

    ImageView fosforo4 = (ImageView) findViewById(R.id.imageView4);
    fosforo4.setVisibility(View.INVISIBLE);

    ImageView fosforo5 = (ImageView) findViewById(R.id.imageView5);
    fosforo5.setVisibility(View.INVISIBLE);

}

public void suma_contador1(){
    if (contador1<30) {
        contador1++;
        mostrar_contadores();
    }
}
    
asked by Andres Fontan 06.07.2016 в 19:07
source

2 answers

2

The problem is that the options of the switch do not end, when entering a continuous option with the following, you have to add a break; to finish each option.

switch (contador1) {
    case 0: {
        fosforo1.setVisibility(View.INVISIBLE);
        fosforo2.setVisibility(View.INVISIBLE);
        fosforo3.setVisibility(View.INVISIBLE);
        fosforo4.setVisibility(View.INVISIBLE);
        fosforo5.setVisibility(View.INVISIBLE);
    }
    break;
    case 1:
        fosforo1.setVisibility(View.VISIBLE);
        fosforo2.setVisibility(View.GONE);
        fosforo3.setVisibility(View.GONE);
        fosforo4.setVisibility(View.GONE);
        fosforo5.setVisibility(View.GONE);
     break;
    case 2:{
        fosforo1.setVisibility(View.VISIBLE);
        fosforo2.setVisibility(View.VISIBLE);
        fosforo3.setVisibility(View.INVISIBLE);
        fosforo4.setVisibility(View.INVISIBLE);
        fosforo5.setVisibility(View.INVISIBLE);
    }
    break;
    case 3:{
        fosforo1.setVisibility(View.VISIBLE);
        fosforo2.setVisibility(View.VISIBLE);
        fosforo3.setVisibility(View.VISIBLE);
        fosforo4.setVisibility(View.INVISIBLE);
        fosforo5.setVisibility(View.INVISIBLE);
    }
     break;
    case 4:{
        fosforo1.setVisibility(View.VISIBLE);
        fosforo2.setVisibility(View.VISIBLE);
        fosforo3.setVisibility(View.VISIBLE);
        fosforo4.setVisibility(View.VISIBLE);
        fosforo5.setVisibility(View.INVISIBLE);
    }
    break;
    case 5:{
        fosforo1.setVisibility(View.VISIBLE);
        fosforo2.setVisibility(View.VISIBLE);
        fosforo3.setVisibility(View.VISIBLE);
        fosforo4.setVisibility(View.VISIBLE);
        fosforo5.setVisibility(View.VISIBLE);
    }
     break;
    default:
    break;
}
    
answered by 07.07.2016 в 12:50
0

What happens is that in order to finish an operation inside a switch it must take a break; this is used to indicate that the action is over and if it does not have all the action enclosed in a switch, it will be executed until the last one:

switch (contador1) {
case 0: {
    fosforo1.setVisibility(View.INVISIBLE);
    fosforo2.setVisibility(View.INVISIBLE);
    fosforo3.setVisibility(View.INVISIBLE);
    fosforo4.setVisibility(View.INVISIBLE);
    fosforo5.setVisibility(View.INVISIBLE);
}
break;
case 1:
    fosforo1.setVisibility(View.VISIBLE);
    fosforo2.setVisibility(View.GONE);
    fosforo3.setVisibility(View.GONE);
    fosforo4.setVisibility(View.GONE);
    fosforo5.setVisibility(View.GONE);
 break;
case 2:{
    fosforo1.setVisibility(View.VISIBLE);
    fosforo2.setVisibility(View.VISIBLE);
    fosforo3.setVisibility(View.INVISIBLE);
    fosforo4.setVisibility(View.INVISIBLE);
    fosforo5.setVisibility(View.INVISIBLE);
}
break;
case 3:{
    fosforo1.setVisibility(View.VISIBLE);
    fosforo2.setVisibility(View.VISIBLE);
    fosforo3.setVisibility(View.VISIBLE);
    fosforo4.setVisibility(View.INVISIBLE);
    fosforo5.setVisibility(View.INVISIBLE);
}
 break;
case 4:{
    fosforo1.setVisibility(View.VISIBLE);
    fosforo2.setVisibility(View.VISIBLE);
    fosforo3.setVisibility(View.VISIBLE);
    fosforo4.setVisibility(View.VISIBLE);
    fosforo5.setVisibility(View.INVISIBLE);
}
break;
case 5:{
    fosforo1.setVisibility(View.VISIBLE);
    fosforo2.setVisibility(View.VISIBLE);
    fosforo3.setVisibility(View.VISIBLE);
    fosforo4.setVisibility(View.VISIBLE);
    fosforo5.setVisibility(View.VISIBLE);
}
 break;

}

    
answered by 11.07.2016 в 14:11