在监听器中禁用按钮1s,然后在android中生成输出流



我是stackoverflow的新手。我创建了一个简单的蓝牙应用程序来控制中继板。

继电器是";关于";单击按钮后持续1s。到目前为止,它是有效的,但如果我在1秒内点击按钮,继电器就会"关闭";关于";再持续1秒。

所以我想在继电器处于"关闭"状态时禁用按钮;在"上";。我用过.postDelayed((。这同样有效,但不可能在.postDelayed((例程中生成outputStream来清除中继。

有人给我一个主意吗?

问候Joe

// Rel1 btn click
mRel1Btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
mRel1Btn.setEnabled(false);
mRel1Btn.setClickable(false);
if (mBlueAdapter.isEnabled()) {
try {
OutputStream mOutputStream = mBtSocket.getOutputStream();
mOutputStream.write(RELAY_ON);
new Handler().postDelayed(new Runnable()
{
public void run()
{
mRel1Btn.setEnabled(true);
mRel1Btn.setClickable(true);
mOutputStream.write(RELAY_OFF);  // sending bytes to serial COM (BT)

}
}, 1000    //Specific time in milliseconds
);
} catch (IOException e) {
e.printStackTrace();
}
}
}
});

出现以下错误

错误:未报告的异常IOException;必须被捕获或宣布抛出

mOutputStream.write(RELAY_OFF(;(左括号上的标记(

已解决:

我创建了一个子程序";sendMessage(消息(";并从我的监听器中调用了这个子程序。

// Rel1 btn click
mRel1Btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
if (mBlueAdapter.isEnabled()) {
sendMessage(RELAY1_JDY30_ON);
mRel1Btn.setEnabled(false);
mRel1Btn.setClickable(false);
new Handler().postDelayed(new Runnable()
{
public void run()
{
sendMessage(RELAY1_JDY30_OFF);
mRel1Btn.setEnabled(true);
mRel1Btn.setClickable(true);
}
}, 1000    //Specific time in milliseconds
);
}
}
});
.
.
.
private void sendMessage(byte[] message) {
OutputStream mOutputStream;
try {
mOutputStream = mBtSocket.getOutputStream();
mOutputStream.write(message);
} catch (IOException e) {
e.printStackTrace();
}
}

相关内容

  • 没有找到相关文章

最新更新