在我的UpdateFragment中,我有一个按钮。当我单击此按钮时,它将被禁用并从服务中调用方法。
如何从服务方法中将按钮改回 enabled ?
/* THIS IS updateFRAGMENT */
btnUpdateApp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FileUtil.logInformation(this.getClass().getName(), getResources().getText(R.string.manual_update_start).toString());
//disable button
btnUpdateApp.setEnabled(false);
ServiceUtils s = new ServiceUtils();
s.getUpdateInfos();
}
});
/* THIS IS MY SERVICE METHOD */
public void getUpdateInfos(){
try {
// ... some steps here ...
//I want to return my button enabled here
}
catch (Exception ex){
ex.printStackTrace();
}
}
答案 0 :(得分:0)
调用getUpdateInfos
时,将引用传递给按钮,如下所示:
s.getUpdateInfos(btnUpdateApp);
使getUpdateInfos
方法接受新参数:
public void getUpdateInfos(YourButtonType btnUpdateApp) {
完成操作后,请使用参考将按钮更改回启用状态:
btnUpdateApp.setEnabled(true);
答案 1 :(得分:0)
您需要创建一个侦听器,并将其传递给服务。这样的事情将使工作:
public interface ServiceListener(){
void onServiceFinished();
}
使您的片段实现侦听器,并在onServiceFinished方法内重新启用您的按钮。在您的服务中,仅在需要时调用侦听器的方法。