2016-04-13 16 views
1

Ich habe für eine Weile für eine Lösung gesucht, aber scheint nicht zu funktionieren. Es gibt ein oder zwei hier über dieses Thema, aber ich kann nicht scheinen, sie in Gang zu bringen. Ich bin auch ein Novize in Android und während ich ein paar Jahre damit verbracht habe, damit zu spielen, verstehe ich immer noch so gut wie gar nichts über das, was ich schreibe.Schaltfläche zum Ausblenden eines TextView

Grundsätzlich habe ich eine TextView und eine Schaltfläche. Idealerweise möchte ich Text in den TextView einfügen, einen Knopf drücken, der weg ist, den Knopf erneut drücken und es ist wieder da.

Ich habe es eingegrenzt zu verstehen, was findViewById (R.id.button2) tut, aber ehrlich gesagt bin ich ein bisschen verloren.

Ich habe meine Button-Code aber Entschuldigungen fügte hinzu, dass dies so ein noob Frage

public void onClick(Button v){ 
    TextView t1 = (TextView)findViewById(R.id.editText); 
    v.setVisibility(View.GONE); 

    Button button = (Button) findViewById(R.id.button2); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      TextView t1 = (TextView)findViewById(R.id.TextView); 
      v.setVisibility(View.GONE); 
     } 
    }); 
} 

Antwort

0

Ihr Code ein paar Probleme hat. Ich werde dir den Code nicht geben, weil dir das nicht wirklich helfen wird. Stattdessen erkläre ich die Dinge und lasse Sie versuchen, es herauszufinden oder mit expliziteren Fragen zurückzukommen.

Sie kennen die XML-Datei, die Sie mit setContentView festgelegt haben? Einige der darin enthaltenen Tags hatten eine Eigenschaft android: id = "xxxx". Dass xxxx die ID dieser Ansicht ist, wird verwendet, damit Sie diese Ansicht in Ihrem Code finden können. Die Funktion findViewById durchläuft alle Ansichten auf dem Bildschirm und findet eine Ansicht mit dieser ID und gibt sie zurück. Das gibt Ihnen einen Verweis auf die Ansicht, sodass Sie sie ändern können. Sie können beispielsweise die Sichtbarkeit festlegen, die Hintergrundfarbe festlegen oder einen OnClickListener festlegen.

So eine Taste haben, um die Sichtbarkeit einer anderen Ansicht zu wechseln, müssen Sie die folgenden Dinge der Lage sein zu tun:

1) Finden Sie die Ansicht, die Sichtbarkeit Sie

2) Herauszufinden ändern möchten was zur Zeit seiner Sichtbarkeit

3) Finde heraus, was Sie es haben wollen (das Gegenteil von dem, was es derzeit ist

4)

, die Sichtbarkeit Set

Sie müssen eine Funktion schreiben, die all das tut. Dann müssen Sie diese

1) Finden Sie die Schaltfläche Sie die Sichtbarkeit ändern verwenden möchten tun

2) Sagen Sie ihm Ihre Funktion aufzurufen, wenn seine gedrückt.

Finden Sie heraus, wie Sie jeden dieser Schritte einzeln ausführen, und Sie sollten in der Lage sein, es zusammenzusetzen. Viel Glück.

0

findViewById(R.id.button2) findet die Ansicht mit der ID button2.

können Sie innerhalb onClick prüfen, ob t1 ​​sichtbar ist oder nicht (t1.setVisibility(View.GONE); nicht v.setVisibility(View.GONE);), und schalten Sie zwischen View.GONE und View.VISIBLE.

Denken Sie daran, dass Ihre findViewById() eine echte ID haben sollte. Sie sind normalerweise auf activity_name.xml festgelegt.

Sie verwenden ein onClick in einem onClick. Persönlich empfehle ich, den Listener manuell mit setOnClickListener zu setzen.

Es gibt eine Menge Arbeit für Sie, beginnen Sie mit diesen tutorials. Versuche es weiter und versuche zu verstehen, was du tust.

-1

Ich bin mir nicht sicher, ob der Code Ihnen jetzt hilft. Aber nur für den Fall, hier ist es

  final boolean[] isTvVisible = {false}; 
      final TextView t1 = (TextView)findViewById(R.id.editText); 
      t1.setVisibility(View.GONE); 

      Button button = (Button) findViewById(R.id.button2); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        if (isTvVisible[0]) { 
         t1.setVisibility(View.GONE); 
         isTvVisible[0] = false; 
        } else { 
         t1.setVisibility(View.VISIBLE); 
         isTvVisible[0] = true; 
        } 
       } 
      }); 
0

Sieht aus, als ob Sie eine Toogle Button-Funktion benötigen .. hier ist ein Stück Code.
Wichtig: Sie müssen etwas dagegen @GabeSechan und @ SkyDriver2500 Antworten ..

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 
    //your other code 

    Button button = (Button) findViewById(R.id.button2); 
    final TextView t1 = (TextView) findViewById(R.id.editText); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      t1.setVisibility(t1.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); 
     } 
    }); 
} 

Happy_Coding;

Verwandte Themen