使用 MVP 显示对话框
ShowDialog using 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();
如果我错了请纠正我,但如果我正确理解你的问题,你问的是在何处放置代码以在 MVP
模式中显示 AlertDialog
相关代码。通常一般的想法是 Presenter
不应该有任何 Android
特定代码。它应该只是一个 POJO
class。它使 Presenter class 内的业务逻辑更易于仅使用 JUnit
测试进行测试。所以像下面这样的东西应该有效:
内部主持人:
void onServerCallErrorReturned() {
view.showErrorDialog();
}
里面 Activity:
void showErrorDialog() {
// Here your AlertDialog code can go.
showDialog(getString(R.string.response_server_error));
}
void showDialog(String message) {
}
希望对您有所帮助。
我有一个名为 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();
如果我错了请纠正我,但如果我正确理解你的问题,你问的是在何处放置代码以在 MVP
模式中显示 AlertDialog
相关代码。通常一般的想法是 Presenter
不应该有任何 Android
特定代码。它应该只是一个 POJO
class。它使 Presenter class 内的业务逻辑更易于仅使用 JUnit
测试进行测试。所以像下面这样的东西应该有效:
内部主持人:
void onServerCallErrorReturned() {
view.showErrorDialog();
}
里面 Activity:
void showErrorDialog() {
// Here your AlertDialog code can go.
showDialog(getString(R.string.response_server_error));
}
void showDialog(String message) {
}
希望对您有所帮助。