2012-06-29 13 views
5

Ho due pulsanti in Android. Btn1 e Btn2. Ho bisogno di mostrare Btn1 di default e quando viene cliccato ho bisogno di mostrare Btn2 al posto di Btn1. Ancora una volta quando si fa clic su Btn2, dovrebbe essere sostituito con Btn2. Please help me con qualche esempio ..Azione clic sui pulsanti in Android?

My Code:

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




      } 

     }); 

Grazie in anticipo

risposta

6

È possibile utilizzare lo stesso tasto e cambiare la sua etichetta alternativamente e secondo livello si può mettere il controllo ed eseguire lavoro appropriato.

Secondo il vostro codice aggiornato per conoscere il vostro stanno usando ImageView in modo da provare questo

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 
        } 

       } 

...

Se il vostro caso è specifico per i due pulsanti, è possibile utilizzare due String confrontare operazioni

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 
      } 

Se volete rendere il vostro lavoro codice giusto

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

Fateci sapere se codice richiesto ... Penso che sia semplice si otterrà la visualizzazione pulsante in onClick (View v) –

+0

Vedere il mio codice. Di default viene visualizzato il primo btn e quando clicco su di esso il secondo btn verrà visualizzato insieme al primo btn e quando di nuovo il secondo btn verrà cliccato sarà sparito e solo prima rimane. Ma ogni volta voglio visualizzare solo un btn.help me plz – user1448108

+0

sure ...... 2 min –

0

È possibile creare due pulsanti nel layout con le stesse posizioni esatte, allora si può impostare la visibilità e l'azione di ciascun pulsante che si desidera

0

possibile utilizzare il metodo visibile() per fissare la sua visibilità. ToggleButton o un pulsante e attiva/disattiva l'evento text on click dovrebbe funzionare meglio di due pulsanti.

2

cambiamento questo

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

      btn2.setVisibility(ImageView.GONE); 
     } 

    }); 

da

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

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

    }); 

e questo

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

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

da

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