所以我有一个启动与服务器通信的按钮。但是,当我尝试从点击内部禁用按钮(停止多次点击)时,直到点击结束才会发生这种情况。这是一个问题,因为服务器通信意味着该方法需要一段时间才能执行。我看到之前的一个问题是通过使用标志来阻止多次点击来解决的(并且据说已知错误是按钮无法立即停用)。现在还有其他更优雅的解决方案来处理这个问题,还是标志仍是唯一的方法?
答案 0 :(得分:3)
在按钮的onClick()
你可以,
button.setEnabled(false);
答案 1 :(得分:2)
当我遇到此问题时所做的是使用布尔标志,这是使用标志的示例代码:
boolean isClicked = false;
Button btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (!isClicked) {
isClicked = true;
// CONNECT TO SERVER
isClicked = false;
}
}
答案 2 :(得分:0)
您可以隐藏按钮
button.setVisibility(View.INVISIBLE);
或禁用按钮
button.setEnabled(false);
或使用布尔值保留标志