我不认为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语句使用该字符串的方法。
答案 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 + "");
}
}