为什么有的时候第一条数据显示不出来String[] parts = readMessage_f.split(","); // 按照逗号分割字符串 if (parts.length == 2) { // 获取当前时间 Date currentTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String timeStr = sdf.format(currentTime); a_dis.append(timeStr + " BPM =" + parts[0] + '\n'); data_A_dis.setText(a_dis.toString()); b_dis.append(timeStr + " HRV =" + parts[1] + '\n'); data_B_dis.setText(b_dis.toString());
时间: 2024-01-01 22:07:01 浏览: 110
可能是因为读取到的第一条数据不完整,即没有逗号分隔符,所以分割后的 parts 数组长度为 1,不满足 if (parts.length == 2) 的条件,导致无法正确显示。你可以在 if 语句之前添加一行代码,判断 readMessage_f 中是否包含逗号分隔符,如果不包含,就跳过这条数据的处理,例如:
```java
if (!readMessage_f.contains(",")) {
return; // 跳过这条数据
}
String[] parts = readMessage_f.split(",");
// 接下来是原来的代码
```
这样就可以避免第一条数据无法正常显示的问题。
相关问题
public void run() { String[] parts = readMessage_f.split(","); // 按照逗号分割字符串 if (parts.length == 2) { // 获取当前时间 Date currentTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String timeStr = sdf.format(currentTime); a_dis.append(parts[0] + '\n'); data_A_dis.setText(timeStr + " BPM =" + a_dis.toString()); b_dis.append(parts[1] + '\n'); data_B_dis.setText(timeStr + " HRV =" + b_dis.toString());这里显示数据为什么只有第一条有时间
这是因为你在使用 `a_dis.toString()` 和 `b_dis.toString()` 时,只有第一个数据加入了时间,而第二个数据没有加入时间。你需要在将第二个数据转换成字符串时,也加入时间。
可以修改为如下代码:
```
public void run() {
String[] parts = readMessage_f.split(","); // 按照逗号分割字符串
if (parts.length == 2) {
// 获取当前时间
Date currentTime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String timeStr = sdf.format(currentTime);
a_dis.append(parts[0] + '\n');
data_A_dis.setText(timeStr + " BPM =" + a_dis.toString());
b_dis.append(parts[1] + '\n');
data_B_dis.setText(timeStr + " HRV =" + b_dis.toString(timeStr));
}
}
```
这样就可以在第二条数据后面也加入时间了。
public void run() { String[] parts = readMessage_f.split(","); // 按照逗号分割字符串 if (parts.length == 2) { // 获取当前时间 Date currentTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String timeStr = sdf.format(currentTime); a_dis.append(parts[0] + '\n'); data_A_dis.setText(timeStr + " BPM =" + a_dis.toString()); b_dis.append(parts[1] + '\n'); data_B_dis.setText(timeStr + " HRV =" + b_dis.toString());为什么这里只有第一次显示数据的时候有时间,其余时候都没有
这是因为在每次更新数据时,你只是把之前的数据加上新的数据再显示出来,而没有更新时间。你需要在每次更新数据时,重新获取当前时间并格式化成字符串,然后再显示出来。修改后的代码如下:
```
public void run() {
String[] parts = readMessage_f.split(","); // 按照逗号分割字符串
if (parts.length == 2) {
// 获取当前时间
Date currentTime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String timeStr = sdf.format(currentTime);
a_dis.append(parts[0] + '\n');
data_A_dis.setText(timeStr + " BPM =" + a_dis.toString());
b_dis.append(parts[1] + '\n');
data_B_dis.setText(timeStr + " HRV =" + b_dis.toString());
}
}
```
这样就能在每次更新数据时,显示当前时间了。
阅读全文