btn_fill_start = findViewById(R.id.btn_fill_start); // 发送寻北指令 btn_fill_stop = findViewById(R.id.btn_fill_stop); // 发送停止寻北指令 btn_fill_start.setOnClickListener(view->{ // 开始寻北指令 sendData("0x8080020103EE"); //实现寻北跳转 btn_fill_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent =null; intent =new Intent(XbyActivity.this,But_Noth_Record.class); startActivity(intent); } }); // 清空寻北的显示数据 northDataMsg = guideDataMsg = ""; showRecvData("", false); // 清空进度条 setProgressValue(0); progressValue = 0; progressFlag = false; }); btn_fill_stop.setOnClickListener(view->{ // 结束寻北指令 sendData("0x8080020204EE");就上面的代码我跳转到其他页面后返回我停止寻北为啥在按开始到不寻北了
时间: 2024-02-10 14:09:34 浏览: 18
根据你提供的代码,我发现可能是因为在你跳转到其他页面后,重新设置了 `btn_fill_start` 的点击事件,导致原本的寻北指令被覆盖了。你可以尝试在跳转之前保存 `btn_fill_start` 的原始点击事件,在返回时再恢复它,这样就可以避免寻北指令被覆盖的问题。示例代码如下:
```
// 保存原始的点击事件
OnClickListener originalListener = btn_fill_start.getOnClickListener();
// 跳转到其他页面
Intent intent = new Intent(XbyActivity.this, But_Noth_Record.class);
startActivity(intent);
// 在返回时恢复原始的点击事件
btn_fill_start.setOnClickListener(originalListener);
```
不过,具体实现方式还需要根据你的代码结构和逻辑进行调整。
相关问题
btn_fill_start = findViewById(R.id.btn_fill_start); // 发送寻北指令 btn_fill_stop = findViewById(R.id.btn_fill_stop); // 发送停止寻北指令 btn_fill_start.setOnClickListener(view->{ // 开始寻北指令 sendData("0x8080020103EE"); //保存原始的点击事件 final View.OnClickListener originalListener = btn_fill_start.getOnClickListener(); //实现寻北跳转 btn_fill_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent =null; intent =new Intent(XbyActivity.this,But_Noth_Record.class); startActivity(intent); } }); //返回时恢复原始点击事件 btn_fill_start.setOnClickListener(originalListener);改错
在这段代码中,存在一个问题,即在更改按钮的点击事件后,又立即将其更改回原始的点击事件。这会导致按钮的点击事件在第一次更改后立即被覆盖,因此不会有效果。
要解决这个问题,可以将原始的点击事件保存在另一个变量中,然后在需要恢复时再重新设置为按钮的点击事件。修改后的代码如下:
```
btn_fill_start = findViewById(R.id.btn_fill_start); // 发送寻北指令
btn_fill_stop = findViewById(R.id.btn_fill_stop); // 发送停止寻北指令
// 保存原始的点击事件
final View.OnClickListener originalListener = btn_fill_start.getOnClickListener();
btn_fill_start.setOnClickListener(view -> {
// 开始寻北指令
sendData("0x8080020103EE");
// 实现寻北跳转
Intent intent = new Intent(XbyActivity.this, But_Noth_Record.class);
startActivity(intent);
});
// 返回时恢复原始点击事件
btn_fill_start.setOnClickListener(originalListener);
```
edit_recv_data = findViewById(R.id.editRecvData); // 接收数据框 view_can_send = findViewById(R.id.viewCanSend); // 发送数据区域 btn_fill_start = findViewById(R.id.btn_fill_start); // 发送寻北指令 btn_fill_stop = findViewById(R.id.btn_fill_stop); // 发送停止寻北指令 //保存原始的点击事件 View.OnClickListener originalListener = btn_fill_start.getCameraDistance(); btn_fill_start.setOnClickListener(view->{ // 开始寻北指令 sendData("0x8080020103EE"); //实现寻北跳转 btn_fill_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent =null; intent =new Intent(XbyActivity.this,But_Noth_Record.class); startActivity(intent); } }); //返回时恢复原始点击事件 btn_fill_start.setOnClickListener(originalListener); // 清空寻北的显示数据 northDataMsg = guideDataMsg = ""; showRecvData("", false); // 清空进度条 setProgressValue(0); progressValue = 0; progressFlag = false; }); btn_fill_stop.setOnClickListener(view->{ // 结束寻北指令 sendData("0x8080020204EE"); // 进度条停止 progressFlag = false; });改错
这段代码有一处错误,即在获取原始点击事件时,使用了错误的方法 `getCameraDistance()`,应该使用 `getOnClickListener()` 方法获取原始点击事件。正确的代码如下:
```
edit_recv_data = findViewById(R.id.editRecvData); // 接收数据框
view_can_send = findViewById(R.id.viewCanSend); // 发送数据区域
btn_fill_start = findViewById(R.id.btn_fill_start); // 发送寻北指令
btn_fill_stop = findViewById(R.id.btn_fill_stop); // 发送停止寻北指令
// 保存原始的点击事件
View.OnClickListener originalListener = btn_fill_start.getOnClickListener();
btn_fill_start.setOnClickListener(view -> {
// 开始寻北指令
sendData("0x8080020103EE");
// 实现寻北跳转
btn_fill_start.setOnClickListener(view1 -> {
Intent intent = new Intent(XbyActivity.this, But_Noth_Record.class);
startActivity(intent);
});
// 返回时恢复原始点击事件
btn_fill_start.setOnClickListener(originalListener);
// 清空寻北的显示数据
northDataMsg = guideDataMsg = "";
showRecvData("", false);
// 清空进度条
setProgressValue(0);
progressValue = 0;
progressFlag = false;
});
btn_fill_stop.setOnClickListener(view -> {
// 结束寻北指令
sendData("0x8080020204EE");
// 进度条停止
progressFlag = false;
});
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)