我们有两个活动,一个是我们通过蓝牙建立连接并管理蓝牙另一个是更新我们想要更新包含 TextViews 的 GUI 的 UI。我们在两个活动中成功发送和接收消息,反之亦然。
private OnMessageReceivedListener dataReceivedListener = new OnMessageReceivedListener() {
public void OnMessageReceived(String device, String message) {
//t.setText(message);
Log.d("Message" , message);
msg = message;
UpdateGUI();
}
};
上面的函数接收到消息,我们成功地做到了。
private void UpdateGUI() {
//i++;
//tv.setText(String.valueOf(i));
myHandler.post(myRunnable);
}
final Runnable myRunnable = new Runnable() {
public void run() {
btBoard.UpdateYoursBoard(mystring);
}
};
连接类的上述函数调用我们的GUI类的方法,并发送一个接收到的消息给它。
在我们的 GUI 类中,我们想要这个
public void UpdateYoursBoard(String positions)
{
Log.d("Positions" , positions);
tv.setText(positions);
}; 我们成功地收到了 log.d 中的消息,但是当我们想要更改我们的 textview 文本时,它会给出以下错误。
java.lang.NullPointerException
at net.clc.bt.Board.UpdateYoursBoard(Board.java:3460)
注意:我们正在使用蓝牙,我们同时连接了 3 部手机,UpdateYourBoard 将更改 3 部手机 GUI 的 TextViews。
请帮我解决问题。提前致谢