我正在创建一个可以通过USB串行与arduino通信的Android应用程序,并使用来自Github的UsbSerial库。 我在UsbReadCallback中收到来自arduino的数据,我将其实现为:
private UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() {
@Override
public void onReceivedData(byte[] arg0) {
try {
String data = new String(arg0, Charset.forName("utf-8"));
if (mHandler != null)
{
mHandler.obtainMessage(0, data).sendToTarget();
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
和我的处理程序:
private static class MyHandler extends Handler {
private final WeakReference<SensorDisplayActivity> mActivity;
public MyHandler(SensorDisplayActivity activity) {
mActivity = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
String data = ( String) msg.obj;
mActivity.get().mainValue_tx.setText(data);
}
}
但是当我在TextView中使用setText()
显示它没有显示正确的值时出现问题,即有时显示00代替100和2而不是42等等但是当我使用{时{1}} TextView的方法正确附加了正确的值。可能是什么解决方案?