2015-11-02 68 views
1

作爲Android的初學者,我有一個愚蠢的問題。我做可以從藍牙測量系統接收數據的應用程序。數據傳輸很酷,因爲我可以在Android Studio的控制檯中顯示它,但我需要在我的一個Activities in循環中顯示它。使用Handler的Android藍牙數據傳輸

部分的藍牙類(I知道inputString,我已轉換它爲int發送之前)

處理程序的
while (true) { 
     in = new BufferedReader(new InputStreamReader(
       socket.getInputStream())); 
     input = in.readLine(); 
     if (input.contains("+++")) { 
      handler.obtainMessage(input).sendToTarget(); 
     } 
    } 

代碼在活動方法run()的代碼:

Handler handler = new Handler() { 
     @Override 
     public void handleMessage(Message message) { 
      textView.setText(message.what); 
     } 
}; 

之後,該應用程序崩潰的錯誤:

FATAL EXCEPTION: main 
android.content.res.Resources$NotFoundException: String resource ID #0x6 

任何人有一個想法如何解決它?

回答

1

Resources$NotFoundException: String resource ID #0x6

由於:

textView.setText(message.what); 

線。

請參閱Message.what返回int值的類型,但TextView.setText需要CharSequence類型的值。

當我們通過intTextView.setText方法,系統治療int值作爲資源ID,並試圖找到它時,沒有資源可用以給定的整數,那麼它會通過NotFoundException: String resource ID

顯示int值在TextView中:

textView.setText(String.valueOf(message.what)); 
+0

謝謝!它現在真的有用! – Vades

+0

@Vades:好,如果它的工作,但重要的是,如果你明白爲什麼它崩潰:) –

+0

我知道。我會記得下次使用它:) – Vades

0

你也可以嘗試

textView.setText(message.what+"");