如何在界面';在Android上调用了什么方法?

如何在界面';在Android上调用了什么方法?,android,interface,progressdialog,Android,Interface,Progressdialog,我有一个带有这三种基本方法的ServerListener接口 public interface ServerListener { void onSuccess(); void onProgress(); void onFailed(String error); } 每当我想从服务器上获取一些结果并在onProgress()方法上向用户显示进度对话框时,我都会使用此方法,如下所示: mProgressDialog = new ProgressDialog(this);

我有一个带有这三种基本方法的ServerListener接口

public interface ServerListener {

void onSuccess();
void onProgress();
void onFailed(String error);
}

每当我想从服务器上获取一些结果并在onProgress()方法上向用户显示进度对话框时,我都会使用此方法,如下所示:

  mProgressDialog = new ProgressDialog(this);
            mUserSetupViewModel.onIdentityUploadClicked(fileName, data.getData(), new ServerListener() {
                @Override
                public void onSuccess() {
                    mProgressDialog.dismiss();

                }

                @Override
                public void onProgress() {
                    mProgressDialog.show();
                }

                @Override
                public void onFailed(String error) {
                    mProgressDialog.dismiss();

                }
            });
如何将进度对话框与界面连接起来,这样我就不必每次在应用程序的任何活动或片段上与服务器打交道时都手动编写进度对话框的代码。
我只想初始化侦听器,并想根据事件自动显示进度对话框和关闭。

您只需创建
Activity
类的子类,并在那里实现
ServerListener
。然后从这个子类扩展你的实际活动

导入android.app.ProgressDialog;
导入androidx.appcompat.app.appcompat活动;
公共类BaseActivity扩展AppCompativity实现ServerListener{
private ProgressDialog mProgressDialog;
@凌驾
公共工程进展(){
mProgressDialog=新建进度对话框(此);
mProgressDialog.show();
}
@凌驾
成功时的公共无效(){
mProgressDialog.disclose();
}
@凌驾
public void onFailed(字符串错误){
mProgressDialog.disclose();
}
}
公共类MyActivity扩展了BaseActivity{
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mUserSetupViewModel.onIdentityUploadClicked(文件名,data.getData(),此文件名);
}
}

您必须至少编写一次代码
ProgressDialog
是一个UI组件,为了使它对每个片段或活动都可用,您可以有一个基类,即
BaseActivity
BaseFragment
,并有两种显示和隐藏进度的方法。另外
ProgressDialog
也可以让您创建一个自定义对话框。谢谢,@ADM..谢谢你的回答。那么,有没有其他方法可以在每次都不编写相同代码的情况下实现类似的功能呢。。。我没有使用不推荐的progressdialog..我已经创建了一个自定义对话框扩展AlertDialog..只是将其命名为相同的。。。