2013-03-12 13 views
7

Ho un onCheckChangedListener per mostrare una vista testo a seconda del pulsante di opzione selezionato. Ho 1 domanda e 1 problema che mi stavo chiedendo se qualcuno potesse aiutarmi con.Come verificare la visibilità di TextView utilizzando IF

Domanda: È possibile impostare il valore di controllo predefinito dei gruppi radio su NO pulsante di opzione in modo che nessuno venga controllato per iniziare?

Problema: come è possibile utilizzare un'istruzione IF per determinare se una visualizzazione di testo è già "visibile" e se viene quindi impostata su "gone", includerò il mio codice corrente. Codice

:

@Override 
public void onCheckedChanged(RadioGroup arg0, int arg1) { 
    switch(arg1){ 
    case R.id.rfolk1: 
     Folk1.start(); 
     TvFolk1.setVisibility(View.VISIBLE); 

     TvFolk2.setVisibility(View.GONE); 

     Play.setVisibility(View.VISIBLE); 
     Pause.setVisibility(View.VISIBLE); 
     Stop.setVisibility(View.VISIBLE); 

     Play2.setVisibility(View.GONE); 
     Pause2.setVisibility(View.GONE); 
     Stop2.setVisibility(View.GONE); 
     break; 
    case R.id.rfolk2: 
     Folk2.start(); 
     TvFolk2.setVisibility(View.VISIBLE); 
     TvFolk1.setVisibility(View.GONE); 

     Play2.setVisibility(View.VISIBLE); 
     Pause2.setVisibility(View.VISIBLE); 
     Stop2.setVisibility(View.VISIBLE); 

     Play.setVisibility(View.GONE); 
     Pause.setVisibility(View.GONE); 
     Stop.setVisibility(View.GONE); 
     break; 
    } 

risposta

24

La classe View include un metodo getVisibility(). Confronto che:

Esempio:

if (TvFolk1.getVisibility() == View.VISIBLE) 
    TvFolk2.setVisibility(View.GONE); 

Per accorciare verso il basso il codice, si può anche fare un metodo:

public static void goneIfVisible (View v) 
{ 
    if (v.getVisibility() == View.VISIBLE) 
     v.setVisibility(View.GONE); 
} 

E tenere a mente in Java, le variabili sono in caratteri minuscoli, utilizzare solo lettere maiuscole per nomi di classe.

+0

Grazie, questo è stato utile, ho pensato che sarebbe stato qualcosa di simile, ma per qualche motivo il mio eclissi non ottiene riempimento automatico per il codice quindi non ho avuto alcun suggerimento da quello – Thomas

1

// Se TextView è già visualizzato e si desidera nasconderlo.

if (TvFolk1.isShown()) { 
    TvFolk2.setVisibility(View.INVISIBLE); 
} 

// Per deselezionare tutti i pulsanti di opzione da gruppi di pulsanti radiofonici

RadioGroup rgButton = (RadioGroup)findViewById(R.id.radiobuttongroup); 
rgButton.clearCheck(); 
Problemi correlati