2012-11-22 21 views
0

我試圖將我的Android應用程序連接到遠程主機上的數據庫。 我想用數據庫的記錄,但有一個問題,當我嘗試這樣做:Android:buffer.toString()dosen't work

if(buffer.toString()=="OPEN") 
        { 
         button_signal.setText("OPEN"); 
        } 
        else 
        { 
         button_signal.setText("CLOSE"); 
        } 

我已經檢查使用日誌buffer.toString(),它等於「打開」,但button_signal的文本被打印爲「CLOSE」。爲什麼?你可以幫我嗎?

回答

1

你不能用在Java中「==」運算符比較字符串。一個字符串是一個對象。 試試這個buffer.toString()。equals(「OPEN」);

編輯:

更妙的是,如果你喜歡這個比較吧: 「OPEN」 .equals(buffer.toString())

因爲如果緩衝區爲空也不會拋出異常。

+0

「如果緩衝區爲空,它不會引發異常。」它會因爲'buffer.toString()'會拋出:)除此之外,''string「.equals(stuffOrNull)'模式確實是更好的模式。 – zapl

+0

謝謝大家,夥計們。現在它工作了!我做了多麼愚蠢的錯誤! – MikeKeepsOnShine

2

它可能有一些不可見的字符或一些字母可能是在不同的情況下,所以請嘗試這個辦法:

buffer.toString().trim().equalsIgnoreCase("OPEN");