2016-12-30 2 views
0

Ich glaube nicht, XML-Code ist notwendig, aber hier ist die TextView:Wie bekomme ich den TextView-Wert als String in der Java-Klasse und setze es?

<TextView 
    android:id="@+id/option4" 
    android:layout_width="175dp" 
    android:layout_height="120dp" 
    android:background = "@drawable/rounded_corner" 
    android:textAppearance="?android:textAppearanceLarge" 
    android:gravity="center" 
    android:text="option 4" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/option3" 
    android:layout_toEndOf="@+id/option3" 
    android:screenOrientation="portrait" 
    android:onClick="onClick4" 
    android:clickable="true"/> 

Die letzten zwei Zeilen sind, was den Klick erkennt.

Mein Java-Code für das heißt:

public void onClick4(View v) { 
    if (option4Text.equals(Integer.toString(answer))) { 
     TextView questionText = (TextView) findViewById(R.id.question); 
     correctAnswer(); 
     questionText.setText(questionTxt + ""); 
    } 
} 

Mein Code für option4Text in Java-Klasse:

option4Text = (TextView)findViewById(R.id.option4); 
    option4Text.setText(wrongAnswer() + ""); 

Wo wrongAnswer() nur eine Zufallszahl zurückgibt. Ich denke, das Problem ist, dass Option4Text selbst keine Zeichenfolge ist, so dass es keinen Wert hat, nach dem Debuggen fand ich, dass nach dem Klicken es nicht innerhalb der if-Anweisung geht. Also meine Frage ist, dass, wie bekomme ich den Text, den ich für option4Text und in eine Zeichenfolge setzen? was die Art, diese Zeichenfolge zu verwenden, wenn if-Anweisung.

Antwort

2

Ich konnte Ihr Problem nicht klar verstehen. Aber wie ich es verstehe, wollen Sie nur den String-Wert von TextView aus der XML-Datei holen.

Wie ich sehen kann, machen Sie einen Fehler. option4Text ist ein Objekt von TextView. Um den String-Wert davon abzurufen, verwenden Sie den folgenden Code.

public void onClick4(View v) 
{ 
    if (option4Text.getText().toString().equals(toString(answer))) { 
     TextView questionText = (TextView) findViewById(R.id.question); 
     correctAnswer(); 
     questionText.setText(questionTxt + ""); 
    } 
} 

option4Text.getText(). ToString() den Wert der Textview geben, die über XML oder von Java-Code festgelegt ist.

+0

Oh ok danke Ich war nicht bewusst, die getText-Methode –

+0

Sehr willkommen. Upvote die Antwort auch. Damit wird es für andere hilfreich sein. –

+0

Ich tat, aber ich habe weniger als 15 rep XD –

0

Hier Problem ist, dass option4Text ist das Objekt, über das Sie die Zeichenfolge in das Textview setzen, anstatt sich, das Textview-Wert nehmen Anotehr String-Variable zu bekommen und den Wert wie erhalten:

String option4str;// take as global variable 
option4Text = (TextView)findViewById(R.id.option4); 
option4Text.setText(wrongAnswer() + ""); 
option4str = option4Text.getText().toString(); 

Dann passen wie:

public void onClick4(View v) { 
    if (option4str .equals(Integer.toString(answer))) { 
     TextView questionText = (TextView) findViewById(R.id.question); 
     correctAnswer(); 
     questionText.setText(questionTxt + ""); 
    } 
} 
+0

Oh ok danke Ich war mir der getText-Methode nicht bewusst –

Verwandte Themen