即時通訊新到Android,這是我在StackOverflow.In的第一篇文章總之,我面對一個非常奇怪的問題: 在我使用的一些方法中,如果(...)和兩個值都相等,但它不通過if。 下面是一個例子:
String []s=db.getStudentsNames();
String []t=CopyNames(s);
String t1,t2;
t2=Id.getText().toString();
for(int i=0;i<s.length;i++)
{
t1=t[i].substring(t[i].indexOf("-")+1).toString();
Notifications(t[i].substring(t[i].indexOf("-")+1).toString());
if(t1.toString()==t2.toString())//Problem!
{
Notifications("Id already exists for "+t[i].substring(0,t[i].indexOf("-")).toString());
return false;
}
}
變量點t1 & T2是:t1="123456789"
& t2="123456789"
,但它不進入,如果像他們是不相等的。 還有其他地方被認爲是不相等的兩個平等 - 在相同的Java頁面(活動),如: if(add.getText().toString()=="Add Student")
:添加是指一個按鈕,其默認情況下,有一個文本:「添加學生」 所以如何我可以解決這個問題嗎?
**時,這個問題開始,我就開始在logcat中看到:
W/KeyCharacterMap(282): No keyboard for id 0
W/KeyCharacterMap(282): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
D/dalvikvm(282): GC_FOR_MALLOC freed 5438 objects/256800 bytes in 73ms
使用't1.toString()。equals(t2.toString())'。你現在正在做的是測試內存中的引用指針。 – DeeV
解決方案在這裏:http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – Tomik