我可以通过编程方式将 TextView 的 xml 文本与另一个字符串进行比较吗?
Can I compare a TextView's xml text with another string programmatically?
如果我在 XML 中设置 TextView 的文本,如下所示:
<TextView
...
android:text="0" />
我可以比较 Java 中的那个字符串吗?这样做:
private void InitializeMethod() {
A_1 = tv_1.getText().toString();
}
private void CheckAnsMethod() {
if (A_1 == "0"){
correctAns.start();
}
}else{
wrongAns.start();
}
}
导致播放声音 'wrongAns.mp3'...
您需要使用字符串 class 的 equals() 方法:
if ( "0".equals(A_1) )
"0" == A_1
将比较指向 String 对象所在位置的引用的值。换句话说,当你真的想比较字符串中的字符时,它正在比较内存地址。
字符串 class 的 equals()
方法实际上将逐个字符地比较字符串以检查它们是否相等。
此外,我使用 "0".equals(A_1)
而不是 A_1.equals("0")
的原因是因为如果 A_1
曾经 null
无论出于何种原因, "0".equals(A_1)
都不会抛出NullPointerException
.
如果我在 XML 中设置 TextView 的文本,如下所示:
<TextView
...
android:text="0" />
我可以比较 Java 中的那个字符串吗?这样做:
private void InitializeMethod() {
A_1 = tv_1.getText().toString();
}
private void CheckAnsMethod() {
if (A_1 == "0"){
correctAns.start();
}
}else{
wrongAns.start();
}
}
导致播放声音 'wrongAns.mp3'...
您需要使用字符串 class 的 equals() 方法:
if ( "0".equals(A_1) )
"0" == A_1
将比较指向 String 对象所在位置的引用的值。换句话说,当你真的想比较字符串中的字符时,它正在比较内存地址。
字符串 class 的 equals()
方法实际上将逐个字符地比较字符串以检查它们是否相等。
此外,我使用 "0".equals(A_1)
而不是 A_1.equals("0")
的原因是因为如果 A_1
曾经 null
无论出于何种原因, "0".equals(A_1)
都不会抛出NullPointerException
.