gpt4 book ai didi

java - 观察完成后在 View 中显示 AlertDialog

转载 作者:行者123 更新时间:2023-11-29 18:29:59 26 4
gpt4 key购买 nike

我想在我的 View 中显示一个AlertDialog,表明结果是成功的,

private void actionUpdateProfesional() {
btnSave.setOnClickListener(view -> {
alertDialog = new AlertDialog.Builder(this)
.setTitle("Wait!")
.setMessage("Are you sure you want update your data?")
.setPositiveButton("YES", (dialogInterface, i) -> presenter.updateProfile())
.setNegativeButton("NO", null)
.create();
alertDialog.show();
});
}

在我的 Completable 在我的 Presenter 上完成后:

@Override
public void updateProfile() {
Disposable d = updateInfoInteractor
.build(new ProfileUpdateInfoInteractor.Param(view.getPhone(), view.getLocation(), view.getDescription()))
.observeOn(schedulers.main())
.subscribeWith(new DisposableCompletableObserver() {
@Override
public void onComplete() {
Timber.d("Profile edited");
}

@Override
public void onError(Throwable e) {
Timber.d("Error at edit profile");
}
});
}

最佳答案

但是如果你想通过 MVP 架构解决这个问题,你必须在你的 View 界面中创建新的方法。因为 Presenter 不执行 UI 逻辑,否则您的架构将被破坏。

public interface MyObjectView {
void resultSuccess(int status);
}


MyObjectView myView

Public MyPresenterConstructor(MyObjectView myView){
this.myView = myView;
}


@Override
public void updateProfile() {
Disposable d = updateInfoInteractor
.build(new ProfileUpdateInfoInteractor.Param(view.getPhone(), view.getLocation(), view.getDescription()))
.observeOn(schedulers.main())
.subscribeWith(new DisposableCompletableObserver() {
@Override
public void onComplete() {
Timber.d("Profile edited");

// Show alert dialog here!
myView.resultSuccess(200) // Okee

}

@Override
public void onError(Throwable e) {
Timber.d("Error at edit profile");
}
});
}

然后,不要忘记在您的 Activity (UI) 中实现您的 View 界面。然后调用您的 alertDialog。

public class MainActivity extend AppCompatActivity implement MyObjectView{

…….

@Override
Public void resultSuccess(int code){

// call your dialog here

}

…..

}

关于java - 观察完成后在 View 中显示 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56792735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com