2013-03-12 12 views
7

Ich habe einen onCheckChangedListener, um eine textView anzuzeigen, abhängig davon, welches Optionsfeld ausgewählt ist. Ich habe 1 Frage und 1 Problem, dass ich mich gefragt habe, ob mir jemand helfen könnte.So überprüfen Sie die Sichtbarkeit von TextView mit IF

Frage: Können Sie den Standardwert für die Radiogruppen-Überprüfung auf "NO" (Nein) einstellen, so dass keiner überprüft wird?

Problem: Wie kann ich eine IF-Anweisung verwenden, um zu bestimmen, ob eine Textansicht bereits "sichtbar" ist und wenn es dann auf "gegangen" gesetzt wird, werde ich meinen aktuellen Code einschließen.

Code:

@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; 
    } 

Antwort

24

View Die Klasse enthält eine getVisibility() Methode. Vergleichen Sie das:

ZB:

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

zu verkürzen unten Code, können Sie auch eine Methode machen:

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

Und denken Sie daran, in Java, Variablen werden kleingeschrieben, nur Versalien verwenden für Klassennamen.

+0

Danke, das war hilfreich, nahm ich an, es wäre etwas Ähnliches sein, aber aus irgendeinem Grund meine Eclipse nicht autofill für Code also hatte ich wirklich keine Hinweise darauf – Thomas

1

// Wenn TextView bereits angezeigt wird und Sie es ausblenden möchten.

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

// Für uncheck alle Radiobutton von Radiobutton-Gruppen

RadioGroup rgButton = (RadioGroup)findViewById(R.id.radiobuttongroup); 
rgButton.clearCheck(); 
Verwandte Themen