使用MVP的ShowDialog

时间:2018-08-27 20:29:47

标签: java android mvp

我有一个名为ILoginView的视图,上面有一个showDialog(String message),在我的LoginPresenter上,我有对api的调用,因此如果失败,我会执行view.showDialog(context.getString(R.string.response_server_error));,所以我的问题是,当我实现我的mainActivity上的界面,我必须重写此方法,这里是放置

的正确方法
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setMessage("Click on Image for tag");
    alertDialogBuilder.setPositiveButton("Ok",
        new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
        }
    });

    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();

1 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我,但是如果我正确理解了您的问题,则您正在询问将代码放置在AlertDialog模式中以显示MVP相关代码的位置。通常,一般的想法是Presenter不应包含任何Android特定的代码。它应该只是一个POJO类。仅使用JUnit测试,它就可以使Presenter类中的业务逻辑更易于测试。因此,下面的内容应该可以工作:

内部演示者:

void onServerCallErrorReturned() {
    view.showErrorDialog();
} 

内部活动:

void showErrorDialog() {
    // Here your AlertDialog code can go.
    showDialog(getString(R.string.response_server_error));
}

void showDialog(String message) {
}

希望这会有所帮助。