Hide image In Fragment

0

I have the following part of my code:

  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

            final View view = inflater.inflate(R.layout.llanterna_fragment,
                    container, false);

            ImageButton button = (ImageButton) view.findViewById(R.id.estrellaOn);
            ImageButton button2 = (ImageButton) view.findViewById(R.id.estrellaOff);

            button.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {

                    switch (v.getId()){

                        case R.id.estrellaOn:
                            //Apretar mostramos texto
                         //   Toast.makeText(getActivity(), "Activar flash!", Toast.LENGTH_SHORT).show();



                            //ocultamos estrella
                          //  getView().setVisibility(View.GONE);
                          //  estrellaOn.setVisibility(View.VISIBLE);
                          //  estrellaOff.setVisibility(View.VISIBLE);



                            break;

                        case R.id.estrellaOff:
                            //Apretar mostramos texto
                            Toast.makeText(getActivity(), "Desactivar flash!", Toast.LENGTH_SHORT).show();


                            //mostramos estrella

                            estrellaOff.setVisibility(View.GONE);

                            break;


                    }

                }
            });
            return view;
        }

In the layout I created two images: Star On and Star Off

The idea is that when you click on the StarOn button, hide and show the one that is hidden. But I do not get it.

What am I doing wrong?

regards,

    
asked by Montse Mkd 08.11.2018 в 22:44
source

1 answer

1

You must implement the onclick listener at fragment:

 public class TuFragment extends Fragment implements View.OnClickListener { ...

will ask you to implement the onClick method.

In onCreateView assign the listener to the buttons:

button.setOnClickListener(this);
button2.setOnClickListener(this);

The onClick method should look like this:

 @Override
 public void onClick(View v) {
    switch (v.getId()){

        case R.id.button:
            Toast.makeText(getActivity(), "Activar flash!", Toast.LENGTH_SHORT).show();
            button.setVisibility(View.GONE);
            button2.setVisibility(View.VISIBLE);
            break;

        case R.id.button2:
            //Toast.makeText(getActivity(), "Desactivar flash!", Toast.LENGTH_SHORT).show();
            button2.setVisibility(View.GONE);
            //button.setVisibility(View.VISIBLE);
            break;
    }
}

Another way is without implementing the onclick listener and assigning the onclick directly to each button:

 button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button.setVisibility(View.GONE);
            button2.setVisibility(View.VISIBLE);  
        }
    });

  button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button2.setVisibility(View.GONE);
            //button.setVisibility(View.VISIBLE);  
        }
    });
    
answered by 09.11.2018 / 21:14
source