2014-11-05 73 views
1

我的問題是,這是行不通的:String.equals()不會工作

if (result.equals("success")) { 
    Toast.makeText(MainActivity.myContext, "Hausaufgabe eingetragen!", Toast.LENGTH_LONG).show(); 
    startSync(lv); 
} 
else if (result.equals("already exists")) { 
    Toast.makeText(MainActivity.myContext, "Hausaufgabe wurde bereits eingetragen!", Toast.LENGTH_LONG).show(); 
} 
else if (result.equals("user not exists")){ 
    Toast.makeText(MainActivity.myContext, "Das eingespeicherte Benutzerkonto ist ungültig oder gelöscht worden!", Toast.LENGTH_LONG).show(); 
} 
else if (result.equals("server problem")){ 
    Toast.makeText(MainActivity.myContext, "Ein Server Problem ist aufgetreten!\n" + "Bitte melden!", Toast.LENGTH_LONG).show(); 
} 
else { 
    Toast.makeText(MainActivity.myContext, "Unbekannte Rückmeldung des Servers:\n" + result, Toast.LENGTH_LONG).show(); 
} 

Log.d("API",result); 

logcat的說API:成功,但在應用程序的反饋是 「UnbekannteRückmeldungDES服務器: 成功」

+10

你確定值被修剪?換句話說,字符串周圍沒有空格? – manouti 2014-11-05 19:05:37

+2

也等於區分大小寫 – Blackbelt 2014-11-05 19:15:01

回答

2

使用trim()方法,因爲你的變量result可能包含一個空間,比如 「成功」:

if (result.trim().equals("success")) { 
... 
... 

你可以COMPLEM耳鼻喉科與toLowerCase()方法,防止大寫字母,如「成功」的句柄:

if (result.trim().toLowerCase().equals("success")) { 
    ... 
    ... 

,或者嘗試使用indexOf()方法

例如:

if (result.indexOf("success") > 0) { 
... 
... 
+0

指數爲我工作!謝謝!但我有一個問題:爲什麼它不能與equals或trim一起工作,我的瀏覽器正確顯示api? – Androider123454321 2014-11-07 14:57:38

+0

Androider先生如果您的變量「結果」具有「成功」的de值,則使用equals必須足夠;如果變量「結果」具有「成功」,「成功」或「成功」的值,則.trim()。equals()將執行該作業;檢查變量「結果」是否真的具有「成功」的值,例如可能「沒有成功」,trim()。equals()在這裏不起作用。 – Jorgesys 2014-11-07 18:46:37

+0

我的瀏覽器告訴我「成功」,Logcat告訴我「成功」,Toast告訴我「成功」? – Androider123454321 2014-11-07 19:00:32