当我点击一个按钮时,我调用了一个功能,当我连接到服务器时,该功能使按钮不可见。问题我无法检查按钮的可见性是否已被修改。
Set c = c.Location(where:=xlLocationAsNewSheet, "newChartSheetName")
c.Move After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
如果我收到此事件,请在socket.connect之后
login_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
socket.connect();
if (login_btn.getVisibility() == View.VISIBLE) {
Clink.show(EspacePersonnelActivity.this, "veuillez verifier les parametres de connexion");
}
}
});
问题是login_btn在点击之前是可见的,并且编码总是返回true。 我想在点击它之后检查按钮是否始终可见。
答案 0 :(得分:0)
所有与网络相关的操作都应该在后台线程上完成。查看代码,看起来当调用socket.connect()时,将在后台线程中建立连接。因为连接将在后台线程中建立,所以UI线程向前移动并执行if(login_btn.getVisibility()== View.VISIBLE)语句。因为您正在设置login_btn.setVisibility(View.GONE),所以在调用if(login_btn.getVisibility()== View.VISIBLE)之后执行的连接之后,login_btn可见性始终可见。如果要在建立连接后显示消息,则必须在run()方法内移动代码,否则如果要在建立连接之前/同时显示消息,则必须移动Click.show()在socket.connect()语句之上。