2011-06-21 97 views
3

我有一個簡單的問題讓我大吃一驚。我正嘗試在java中使用三元運算符。我是Android和java的新手。此代碼給我的錯誤:三元運算符不能在Android中工作

amt < 0 ? lendBtn.setChecked(true) : lendBtn.setChecked(false); 

"Syntax error on token "<", invalid AssignmentOperator" 

所以,我用if語句代替它,它完全適用:

if (amt < 0) { ... } 

這不是什麼大不了的事,但沒有人知道爲什麼嗎?

+1

請發佈周圍的代碼。 –

+0

@Oli。謝謝,但Jon已經給出了答案! +1 – okysabeni

+0

值分配到哪裏? – midhunhk

回答

16

這與Android無關。你不能使用條件表達式作爲它自己的語句......第二個和第三個操作數也不能是void表達式。

你應該使用:

lendBtn.setChecked(amt < 0); 

...這是簡單的開始。

+0

「不能自己使用條件語句」。你的意思是我必須把它設置成某種東西嗎? something = true? 「是」:「不」。它看起來像是如果我將它分配給某個東西,錯誤消失 – okysabeni

+0

@Yko:是 - 或者將它用作方法調用內的參數,或者類似的東西。這就是它的設計如何使用。如果你只是想改變你調用的方法,或者在方法參數中使用一個條件(根據我的回答),或者如果不合適,就使用'if'語句。 –