Click button action in android?

I have two buttons in Android. Btn1 and Btn2. I need to show Btn1 by default, and when I click, I need to show Btn2 instead of Btn1. Again, when Btn2 is clicked, it should be replaced by Btn2. Please help me with some example ..

My code is:

btn1 = (ImageView) findViewById(R.id.firstbtn);

        btn2 = (ImageView) findViewById(R.id.secondbutton);
        btn2.setVisibility(ImageView.GONE);

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

                btn2.setVisibility(ImageView.VISIBLE);
            }
        });

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

                btn2.setVisibility(ImageView.GONE);




            }

        });

Thanks in advance

+5
source share
4 answers

You can use the same button and change its label as an alternative, and by level you can put a check and do the corresponding work.

In accordance with your updated code, find out that you are using ImageView, try this

   ImageView btn = (ImageView) findViewById(R.id.secondbutton);
    btn.setTag("1");//can use one empty String "" and null instead of "1" and "2" for optimization

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

                Object obj = v.getTag();

                if(obj instanceof String){
                     if("1".equals(obj)){
                         v.setTag("2");
                         //Your first button state 
                     }else if("2".equals(obj)){
                         v.setTag("1");
                         //Your second button state 
                     }

                }

...

If your case is defined for two buttons, you can use two string comparison operations

ImageView btn = (ImageView) findViewById(R.id.secondbutton);
  btn.setTag(null);

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

            if(v.getTag() instanceof String){
                     v.setTag(null);
                     //Your first button state 
            } else {
                      v.setTag("");
                     //Your second button state 
            }

If you want your code to work correctly

btn1 = (ImageView) findViewById(R.id.firstbtn);

        btn2 = (ImageView) findViewById(R.id.secondbutton);
        btn2.setVisibility(ImageView.GONE);

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

                v.setVisibility(ImageView.GONE);
                btn2.setVisibility(ImageView.VISIBLE);

            }
        });

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

                v.setVisibility(ImageView.GONE);
                btn1.setVisibility(ImageView.VISIBLE);

            }

        });
+6
source

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

            btn2.setVisibility(ImageView.GONE);
        }

    });

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

            btn2.setVisibility(View.GONE);
            btn1.setVisibility(View.VISIBLE);
        }

    });

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

            btn2.setVisibility(View.VISIBLE);
        }
    });

  btn1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            btn1.setVisibility(View.GONE);
            btn2.setVisibility(View.VISIBLE);
        }
    });
+2

You can create two buttons in the layout with the same exact positions, then you can set the visibility and action of each button that you want

0
source

You can use the visible () method to capture its visibility. A ToggleButton or one button and switching text to a click event should work better than two buttons.

0
source

All Articles