public void showMsg(String text) { msg_view.post(() -> msg_view.setText(text)); } // 显示接收数据 public void showRecvData(String text, boolean append) { edit_recv_data.post(() -> { if (edit_recv_data.getLineCount() > 4 || edit_recv_data.length()>1000 || !append) { edit_recv_data.setText(text); } else { edit_recv_data.append(text); } }); } public void showRecvData(String text){ showRecvData(text, true); }; /** * 显示操作区域 * * @param show 显示接收区域(连接之后) * @param edit 可编辑,显示编辑区域(服务匹配之后) */ public void showOpView(boolean show, boolean edit) { op_view.post(() -> { if (show) { if (edit) { view_can_send.setVisibility(View.VISIBLE); } else { view_can_send.setVisibility(View.GONE); } op_view.setVisibility(View.VISIBLE); } else { op_view.setVisibility(View.GONE); } }); } public void showRecvLen(long len){ text_recv_len.post(()->{ if(len>=0){ text_recv_len.setText(String.valueOf(len)); Log.i(TAG,"len.." +len); } }); } public void run(byte[] value){ // 拼接数据 String byteStrTemp = Util.byte2Str(value); bleDataStr += byteStrTemp;
时间: 2024-02-14 13:18:19 浏览: 68
根据你提供的代码,我将这些方法拼接起来,让界面显示接收到的数据:
```
public void run(byte[] value) {
// 拼接数据
String byteStrTemp = Util.byte2Str(value);
bleDataStr += byteStrTemp;
// 显示接收数据
showRecvData(bleDataStr);
// 显示数据长度
showRecvLen(bleDataStr.length());
// 显示操作区域
showOpView(true, true);
}
```
这段代码将接收到的数据拼接到 `bleDataStr` 字符串上,并调用 `showRecvData()` 和 `showRecvLen()` 方法分别显示接收到的数据和数据长度。最后,调用 `showOpView()` 方法显示操作区域。
相关问题
// 更新蓝牙列表 public void updateData() { // 更新数据,随便找了个view,主要是在post中调用视图操作 msg_view.post(()->adapter.notifyDataSetChanged()); } // 显示提醒信息 public void showMsg(String text) { msg_view.post(() -> msg_view.setText(text)); } // 显示接收数据 public void showRecvData(String text, boolean append) { edit_recv_data.post(() -> { if (edit_recv_data.getLineCount() > 4 || edit_recv_data.length()>1000 || !append) { edit_recv_data.setText(text); } else { edit_recv_data.append(text); } }); } public void showRecvData(String text){ showRecvData(text, true); };解释每一句代码
这是一段蓝牙相关的代码,具体解释如下:
1. `public void updateData() { ... }`: 这是一个公共方法,用于更新蓝牙列表。在方法中,调用了`adapter.notifyDataSetChanged()`方法,该方法用于通知列表数据已经发生了变化,让列表进行更新。
2. `public void showMsg(String text) { ... }`: 这也是一个公共方法,用于显示提醒信息。在方法中,调用了`msg_view.setText(text)`方法,该方法用于将`text`设置为`msg_view`对象的文本内容。
3. `public void showRecvData(String text, boolean append) { ... }`: 这是一个公共方法,用于显示接收到的数据。在方法中,首先通过`edit_recv_data.post(() -> { ... })`将后续的操作放到UI线程中执行。然后,判断当前`edit_recv_data`对象的行数是否超过四行,或者当前文本长度是否超过1000个字符,或者`append`参数为`false`,如果满足其中任意一项,则直接设置`edit_recv_data`的文本为`text`;否则,将`text`添加到`edit_recv_data`的文本末尾。
4. `public void showRecvData(String text){ ... }`: 这是`showRecvData`方法的一个重载版本,该方法调用了`showRecvData(String text, true)`,表示每次都将`text`添加到`edit_recv_data`的文本末尾。
public void showMsg(String text) { msg_view.post(() -> msg_view.setText(text)); }
这段代码定义了一个名为 `showMsg()` 的方法,用于在界面上显示一段文本。该方法接收一个 `String` 类型的参数 `text`,表示要显示的文本内容。
具体实现是通过 `msg_view.post()` 方法将更新界面的操作投递到主线程上,然后通过 `msg_view.setText(text)` 方法将文本内容设置到 `msg_view` 控件上,从而实现在界面上显示文本。
如果需要在代码中显示一段文本,可以调用该方法,如下所示:
```
showMsg("这是要显示的文本内容");
```
阅读全文