android MVP设计模式的Demo(MV无P)
// 接口的定义
public interface IView {
// 获取到输入的Spring
String getInPutString();
// 将文字set进去
void setResultString(String string);
}
public interface IPresenter {
void search();
}
public interface IUserService {
String search(int hashCode);
}
// 接口的动作实现类
public class Presenter implements IPresenter{
private IView mView;
public Presenter(IView view){
mView = view;
}
@Override
public void search() {
// 开启界面loding
String inputString = mView.getInPutString();
if (TextUtils.isEmpty(inputString)){
// 为空直接返回
return;
}
int hashCode = inputString.hashCode();
IUserService service = new UserService();
String serviceResult = service.search(hashCode);
String result = "Result:"+inputString+"---"+ serviceResult;
// 关闭界面loding
mView.setResultString(result);
}
}
public class UserService implements IUserService{
@Override
public String search(int hashCode){
return "User"+hashCode;
}
}
// View层 实现View
public class MainActivity extends Activity implements IView {
@BindView(R.id.text_result)
TextView mResultText;
@BindView(R.id.edit_query)
EditText mInputText;
private IPresenter mpresenter;
@Override
protected int getContentLayoutId() {
return R.layout.activity_main;
}
@Override
protected void initData() {
super.initData();
mpresenter = new Presenter(this);
}
@OnClick(R.id.btn_submit)
void onSubmit() {
mpresenter.search();
}
@Override
public String getInPutString() {
return mInputText.getText().toString();
}
@Override
public void setResultString(String string) {
mResultText.setText(string);
}
}