0
A
回答
2
的問題是,如果兩個對象共享相同的內存地址,您比較。而你應該比較兩個對象的內容。
解決方案:使用String.equals
來比較您的字符串值的內容。
if("1".equals(m)){
}
注1:因爲真正的值進行比較,而不是存儲地址對於基本類型(int,雙,浮點型,短和字節)==
將工作。對於對象(非基元),==
總是比較兩個對象的內存地址。
注2: @pskink做了一個非常有用的評論,你的確應該使用Message.what
而不是Message.obj
。 Message.obj
對於傳送所需的實際數據(在同一個過程中)是有用的,但不能識別消息本身。
1
你如果條件應該是這樣的
if(m==1) //is for int
if(m.equals("1")) //is for string
相關問題
- 1. UIScrollView消息處理程序
- 2. SOAP消息處理程序
- 3. Android的消息應用程序如何處理重發失敗的消息
- 4. Android線程處理程序未收到消息
- 5. Android UI線程和消息處理程序混淆
- 6. 圖像處理和比較android應用程序
- 7. 問題與消息處理程序
- 8. ASP.NET Web API消息處理程序
- 9. ActiveMQ/JMS消息處理程序測試
- 10. 有序多線程消息處理
- 11. Spring集成消息處理程序:ActiveMQTextMessage
- 12. Websocketpp設置消息處理程序
- 13. Masstransit。處理程序不確認消息
- 14. Android:帶處理程序消息的刪除按鈕
- 15. Android處理程序消息數據被下一條消息覆蓋
- 16. 通過MSMQ處理較大的WCF消息未處理
- 17. 發送消息給處於死線程的處理程序
- 18. android處理程序等待消息一段時間
- 19. 從Android處理程序中提取消息
- 20. ANDROID:無法從處理程序獲取消息
- 21. Android處理程序只發送一條消息
- 22. StructureMap:如何獲得派生消息的基本消息處理程序? (命令處理程序模式)
- 23. 處理消息
- 24. 處理程序未取消Runnables(Android)
- 25. 使用父窗口處理程序處理子窗口消息。
- 26. 處理程序處理消息時UI正在中斷
- 27. Android NDK:處理消息的JNI「主」?
- 28. 何時使用處理程序/消息在android應用程序中溝通
- 29. 每個線程或每個處理程序的Android消息隊列
- 30. Android - 將消息發送到死線程上的處理程序,Toast錯誤
你應該爲這些目的使用'Message#what'字段,文檔說:*用戶定義的消息代碼,以便接收者可以識別這個消息是關於什麼的。每個Handler都有自己的消息代碼的名稱空間,所以你不必擔心你與其他處理器發生衝突。* – pskink
如果你使用'obj'來傳遞數據,你應該使用'Message#obtain(Handler h ,int what,Object obj)'或'Handler#obtainMessage(int what,Object obj)'來獲得你想發送的'Message' – pskink