使用Handler

时间:2015-11-02 17:12:24

标签: java android bluetooth inputstream

作为Android的初学者,我有愚蠢的问题。我做可以从蓝牙测量系统接收数据的应用程序。数据传输工作很酷,因为我可以在Android Studio的控制台中显示它,但我需要在循环中的一个活动中显示它。

蓝牙类中方法run()的部分代码(我知道inputString,我在发送前已将其转换为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

任何人都知道如何解决它?

2 个答案:

答案 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+"");