如何在Java类中将TextView值作为字符串获取并设置它?

时间:2016-12-30 03:47:42

标签: java android xml string textview

我不认为xml代码是必要的,但这里是TextView

<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"/>

最后两行是检测点击的内容。

我的java代码是:

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

我在java类中的option4Text的代码:

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

其中wrongAnswer()只返回一个随机数。 我认为问题是option4Text本身不是一个字符串,所以它没有一个值,经过调试我发现点击它之后不会进入if语句。 所以我的问题是,如何获取我为option4Text设置的文本并将其放入String中? if if语句使用该字符串的方法。

2 个答案:

答案 0 :(得分:2)

我无法清楚地理解你的问题。但据我了解,您只想从xml文件中获取TextView的字符串值。

我可以看到,你犯了一些错误。 option4Text是TextView的一个对象。因此,要获取它的字符串值,请使用以下代码。

Data

option4Text.getText()。toString()将给出通过Xml或java代码设置的TextView的值。

答案 1 :(得分:0)

这里的问题是option4Text是你通过它将字符串设置到TextView而不是获取的对象,以获取TextView值获取anotehr String变量并得到如下值:

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

然后匹配:

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