Android Mvpの簡単な例
5441 ワード
Android mvpの簡単な例
ブロガーは最近mvpを勉強して、簡単なブログをして、手作業能力を鍛えています.mvpの概念は紹介しません.プロジェクト階層モデル、presenter、view:次の3つの階層を簡単に説明します. modelレイヤクラス. presenterレイヤ論理処理. viewレイヤインタフェースビュー.
まずactivityを作成します.
ActivityはIUserViewというインタフェースを実現しました.
ビジネスロジックのインタフェース
ビジネスロジックの実装
ここまで、activityでインタフェースビューを作成し、buttonがクリックしたときに業務をpresenterに配布して論理を実現し、presentが処理した後に結果をactivityに返し、activityは戻ることによってインタフェースの変換を処理する小さな流れが明らかになった.コードロジックははっきりしていて、1つのactivityで大量の操作をすることもできなくて、ページとロジックを分けました.
ブロガーは最近mvpを勉強して、簡単なブログをして、手作業能力を鍛えています.mvpの概念は紹介しません.プロジェクト階層モデル、presenter、view:次の3つの階層を簡単に説明します.
まずactivityを作成します.
public class MvpActivity extends BaseAppCompatActivity implements IUserView {
private EditText et_myname;
private EditText et_words;
private Button btn_listen;
private TextView tv_str;
private UserPresenterCompl compl;
private String talkString = "";
private UserModel userModel;
@Override
protected int getLayoutId() {
return R.layout.test_mvp;
}
@Override
public void initElem() {
compl = new UserPresenterCompl(this);
userModel = new UserModel("", 0, true, true);
et_myname = (EditText) findViewById(R.id.et_myname);
et_words = (EditText) findViewById(R.id.et_words);
tv_str = (TextView) findViewById(R.id.tv_str);
btn_listen = (Button) findViewById(R.id.btn_listen);
btn_listen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!et_myname.getText().toString().isEmpty())
userModel.setName(et_myname.getText().toString());
talkString = et_words.getText().toString().trim();
//
compl.userListen(talkString, userModel);
}
});
}
@Override
public void onListenResult(String text) {
tv_str.setText(text);
}
}
ActivityはIUserViewというインタフェースを実現しました.
public interface IUserView {
public void onListenResult(String text); //
}
ビジネスロジックのインタフェース
public interface IUserPresenter {
public void userListen(String text, UserModel who); //
}
ビジネスロジックの実装
public class UserPresenterCompl implements IUserPresenter {
private IUserView mainView;
private UserModel obj;
public UserPresenterCompl(IUserView mainView) {
this.mainView = mainView;
obj = new UserModel(" ", 15, true, true);
}
@Override
public void userListen(String text, UserModel who) {
if (obj.isCanListen() && obj.isCanTalk())
//
mainView.onListenResult(" :" + obj.getName() + ", " + " :" + who.getName() + " " text);
}
}
ここまで、activityでインタフェースビューを作成し、buttonがクリックしたときに業務をpresenterに配布して論理を実現し、presentが処理した後に結果をactivityに返し、activityは戻ることによってインタフェースの変換を処理する小さな流れが明らかになった.コードロジックははっきりしていて、1つのactivityで大量の操作をすることもできなくて、ページとロジックを分けました.