2012-06-29 14 views
5

Mam dwa przyciski w systemie Android. Btn1 i Btn2. Muszę domyślnie pokazać Btn1 i po kliknięciu muszę pokazać Btn2 zamiast Btn1. Ponownie, gdy kliknie się Btn2, należy go zastąpić Btn2. Proszę mi pomóc z pewnym przykładzie ..Czynność kliknięcia przycisku w systemie Android?

mój kodu:

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); 




      } 

     }); 

z góry dzięki

Odpowiedz

6

Można użyć tego samego przycisku i zmienić jego etykietę alternatywnie, jak i na poziomie można umieścić czek i wykonać odpowiednia praca.

Według zaktualizowanego kodu poznać swoich korzystania ImageView więc spróbuj tego

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 
        } 

       } 

...

Jeśli przypadek jest specyficzny dla dwóch przycisków można użyć dwa String porównać operacje

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 
      } 

Jeśli chcesz uczynić swoją pracę kodu prawo

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); 

      } 

     }); 
+0

Daj nam znać, jeśli Wymagany kod ... Myślę, że to proste, dostaniesz widok przycisków w onClick (View v) –

+0

Zobacz mój kod. Domyślnie wyświetla się pierwszy btn, a po kliknięciu na nim drugi btn wyświetli się wraz z pierwszym btn i kiedy ponownie kliknięty zostanie drugi btn, zniknie i pozostanie tylko pierwszy btn. Ale za każdym razem chcę wyświetlić tylko jeden btn.help mnie plz – user1448108

+0

na pewno ...... 2 min –

0

Można utworzyć dwa przyciski w układzie z samych dokładnych pozycjach, to można ustawić widoczność i działanie każdego przycisku, który chcesz

0

można użyć metody widoczny(), aby naprawić swoją widoczność. ToggleButton lub jeden przycisk i przełącz tekst na zdarzenie click powinny działać lepiej niż dwa przyciski.

2

zmiana ta

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

      btn2.setVisibility(ImageView.GONE); 
     } 

    }); 

przez

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

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

    }); 

i to

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

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

przez

btn1.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      btn1.setVisibility(View.GONE); 
      btn2.setVisibility(View.VISIBLE); 
     } 
    }); 
Powiązane problemy