mvp模式
来源:互联网 发布:推荐淘宝卖高仿鞋的店 编辑:程序博客网 时间:2024/06/05 16:56
1.MainActivity.Java
public class Main2Activity extends AppCompatActivity implements LoginView{
private Presenter pre;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//得到控件
final EditText username= (EditText) findViewById(R.id.username);
final EditText password= (EditText) findViewById(R.id.password);
Button login= (Button) findViewById(R.id.login);
pre = new Presenter(this);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String user=username.getText().toString().trim();
String pwd=password.getText().toString().trim();
//调用登录的方法
pre.login(user,pwd);
}
});
}
@Override
public void usernamenull() {
Toast.makeText(this, "用户名为空", Toast.LENGTH_SHORT).show();
}
@Override
public void pwdnull() {
Toast.makeText(this, "密码为空", Toast.LENGTH_SHORT).show();
}
@Override
public void succenful() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Main2Activity.this, "成功", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onDetachedFromWindow() {
pre.detch();
}
}
2.Presenter层
public class Presenter {
private LoginView loginView;
private ModelMvp modelMvp;
public Presenter(LoginView loginView) {
this.loginView = loginView;
modelMvp = new ModelMvp();
}
public void login(String username, String password) {
if (TextUtils.isEmpty(username)) {
loginView.usernamenull();
return;
}
if (TextUtils.isEmpty(password)) {
loginView.pwdnull();
return;
}
//登录成功的时候
modelMvp.login(username, password, new ModelMvp.MvpOnChilk() {
@Override
public void Onchilk(String result) {
//调用view中的成功的方法
loginView.succenful();
}
});
}
public void detch(){
loginView=null;
}
}
3、model层
public class ModelMvp {
//请求数据
public void login(String username, String password, final MvpOnChilk mvpOnChilk){
//请求网络
OkHttpClient client=new OkHttpClient();
final Request request=new Request.Builder().url("http://qhb.2dyt.com/Bwei/login?username=muhanxi&password=111&postkey=1503d").build();
Call call=client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
//成功的数据返回到view层界面,需要用到接口
//判断接口是否为空
mvpOnChilk.Onchilk(response.body().string());
}
});
}
public interface MvpOnChilk{
public void Onchilk(String result);
}
}
4.view层
public interface LoginView {
//密码用户名为空
public void usernamenull();
public void pwdnull();
public void succenful();
}
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- MVP模式
- mvp模式
- MVP模式
- mvp模式
- MVP模式
- MVP模式
- mvp模式
- MVP模式
- mvp模式
- MVP模式
- mvp模式
- MVP模式
- configure build path 中各选项的意思
- 数据结构回顾和总结(二叉搜索树(BST)的基本操作)
- 探新Web前端开发(四)
- C++头文件algorithm 2——Sorting
- HDOJ 2087 剪花布条
- mvp模式
- Icpc训练赛 + 国庆大礼包
- java实现希尔排序
- Codeforces Round#412 C Success Rate
- Rxjava2-小白入门(二)
- 【JavaScript】DOM基础
- HttpClient在Android Studio中使用
- 完美队形(区间dp)
- UVa10870