作为Android的初学者,我有愚蠢的问题。我做可以从蓝牙测量系统接收数据的应用程序。数据传输工作很酷,因为我可以在Android Studio的控制台中显示它,但我需要在循环中的一个活动中显示它。
蓝牙类中方法run()
的部分代码(我知道input
是String
,我在发送前已将其转换为int
while (true) {
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
input = in.readLine();
if (input.contains("+++")) {
handler.obtainMessage(input).sendToTarget();
}
}
活动中的处理程序代码:
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
任何人都知道如何解决它?
答案 0 :(得分:1)
Resources $ NotFoundException:字符串资源ID#0x6
由于:
textView.setText(message.what);
线。
请参阅Message.what返回int
类型的值,但TextView.setText
需要CharSequence
类型值。
当我们将int
值传递给TextView.setText
方法时,系统会将int值视为资源ID并尝试在没有资源可用时使用给定的int来查找它然后它将通过NotFoundException: String resource ID
< / p>
在TextView中显示int
值:
textView.setText(String.valueOf(message.what));
答案 1 :(得分:0)
您也可以尝试
textView.setText(message.what+"");