登录注册mvp模式
来源:互联网 发布:淘宝拍视频用什么软件 编辑:程序博客网 时间:2024/05/22 03:25
1、首先显示个人信息页面
public class LiginSuccessfulActivity extends AppCompatActivity { private SharedPreferences sp; private Button login_but; private boolean flag; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ligin); ImageView touxiang = (ImageView) findViewById(R.id.login_touxiang); TextView login_nickname = (TextView) findViewById(R.id.login_nickname); TextView login_phone = (TextView) findViewById(R.id.login_phone); login_but = (Button) findViewById(R.id.login_but); Button login_shop = (Button) findViewById(R.id.login_shop); String username = getIntent().getStringExtra("username"); String pwd = getIntent().getStringExtra("pwd"); sp = getSharedPreferences("confing", MODE_PRIVATE); flag = sp.getBoolean("flag", false); // login_but.setEnabled(true); if (flag == true) { login_but.setText("退出登录"); //登录成功取出手机号和密码 //密码 login_nickname.setText(pwd); //手机号 login_phone.setText(username); } else { login_but.setText("未登录"); login_nickname.setText("未登录"); login_phone.setText("未登录"); } login_but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { flag = false; startActivity(new Intent(LiginSuccessfulActivity.this, MainActivity.class)); } }); login_shop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(LiginSuccessfulActivity.this, GoodsActivity.class)); } }); }}
2、进入登录注册界面
//登录界面的LoginOrRegisterViewpublic class MainActivity extends AppCompatActivity implements LoginOrRegisterView { private LoginOrRegisterPresenter loginOrRegisterPresenter; private EditText ed_username; private EditText ed_pwd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed_username = (EditText) findViewById(R.id.ed_username); ed_pwd = (EditText) findViewById(R.id.ed_pwd); Button login = (Button) findViewById(R.id.login); Button register = (Button) findViewById(R.id.register); //登录界面的prensenter loginOrRegisterPresenter = new LoginOrRegisterPresenter(this); //注册按钮 register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(MainActivity.this, RegisterActivity.class)); } }); //登录按钮 login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { loginOrRegisterPresenter.getLogin(MainActivity.this, ed_username.getText().toString(), ed_pwd.getText().toString()); } }); } @Override public void usernamePwdnull() { Toast.makeText(MainActivity.this, "用户名或密码输入有误", Toast.LENGTH_SHORT).show(); } @Override public void succenful(final JavaBean javaBean) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, LiginSuccessfulActivity.class); intent.putExtra("username", javaBean.getData().getUsername()); intent.putExtra("pwd", javaBean.getData().getPassword()); startActivity(intent); } }); } @Override public void loginEroo() { Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show(); }}
2.1:点击注册按钮
public class RegisterActivity extends AppCompatActivity implements RegisterView{ private RegisterPresenter presenter; private EditText re_username; private EditText re_pwd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); Button re_login= (Button) findViewById(R.id.re_login); re_username = (EditText) findViewById(R.id.re_username); re_pwd = (EditText) findViewById(R.id.re_pwd); presenter = new RegisterPresenter(RegisterActivity.this,this); //注册按钮 re_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(re_username.length()<11&&re_username.length()>11) { Toast.makeText(RegisterActivity.this,"请输入正确的手机号!",Toast.LENGTH_SHORT).show(); } if(re_pwd.length()<6) { Toast.makeText(RegisterActivity.this,"密码不能小于6位!",Toast.LENGTH_SHORT).show(); } presenter.getDate(re_username.getText().toString(),re_pwd.getText().toString()); } }); } @Override public void reGisterusernamenull() { Toast.makeText(this, "手机号输入有误!", Toast.LENGTH_SHORT).show(); } @Override public void reGisterpwdnull() { Toast.makeText(this, "密码输入有误!", Toast.LENGTH_SHORT).show(); } @Override public void reGistersuccenful() { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show(); finish(); } }); } @Override public void reGisterEroo() { Toast.makeText(this,"注册失败",Toast.LENGTH_SHORT).show(); } @Override public void reGisterPhon() { } @Override public void reGisterPwd() { }}
2.1.2:注册的Presenter层
public class RegisterPresenter {
private RegisterView view;
private Context context;
private RegisterModel model;
public RegisterPresenter(Context context, RegisterView view) {
this.view = view;
this.model = new RegisterModel();
this.context = context;
}
public void getDate(final String name, final String pwd) {
model.getData(context, name, pwd, new RegisterLinserter() {
@Override
public void setRegisSuccssful() {
view.reGistersuccenful();
}
@Override
public void setRegisEorr() {
view.reGisterEroo();
}
@Override
public void setRegisMobileNull() {
}
@Override
public void setRegisPwdNull() {
view.reGisterpwdnull();
}
});
}
}
2.1.2:注册的view层
public interface RegisterView {
//注册
public void reGisterusernamenull();
public void reGisterpwdnull();
public void reGistersuccenful();
public void reGisterEroo();
}
2.1.3:注册的Model层
public class RegisterModel {
public void getData(final Context context, final String name, final String pwd, final RegisterLinserter linserter) {
if (TextUtils.isEmpty(name)) {
linserter.setRegisMobileNull();
}
if (TextUtils.isEmpty(pwd)) {
linserter.setRegisPwdNull();
}
Map<String, String> map = new HashMap<>();
map.put("mobile", name);
map.put("password", pwd);
//请求数据
OkHttp3Utils.doPost("http://120.27.23.105/user/reg", map, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
linserter.setRegisEorr();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson = new Gson();
JavaBean javaBean = gson.fromJson(string, JavaBean.class);
String code = javaBean.getCode();
if ("0".equals(code)) {
linserter.setRegisSuccssful();
}
}
});
}
}
2.1.4:Model层对应的接口
public interface RegisterLinserter {
public void setRegisSuccssful();
public void setRegisEorr();
public void setRegisMobileNull();
public void setRegisPwdNull();
}
2.2.0:点击登录按钮,由于登录按钮不需要跳转新的Activity,直接在点击事件中完成
登录的Presenter层
public class LoginOrRegisterPresenter {
private LoginOrRegisterView view;
private LoginOrRegisterModel model;
public LoginOrRegisterPresenter(LoginOrRegisterView view) {
this.view = view;
this.model = new LoginOrRegisterModel();
}
public void getLogin(Context context, String name, String pwd) {
model.getLogin(context, name, pwd, new LoginLister() {
@Override
public void setLoginSuccssful(JavaBean javaBean) {
view.succenful(javaBean);
}
@Override
public void setLoginEorr() {
view.loginEroo();
}
@Override
public void setLoginMobilePwdNull() {
view.usernamePwdnull();
}
});
}
}
2.2.1:登录的view层
public interface LoginOrRegisterView {
//密码用户名为空
public void usernamePwdnull();
public void succenful(JavaBean javaBean);
public void loginEroo();
}
2.2.2:登录的Model层
public class LoginOrRegisterModel { private SharedPreferences sp; public void getLogin(Context context, final String name, final String pwd, final LoginLister loginLister) { sp = context.getSharedPreferences("confing", Context.MODE_PRIVATE); Map<String, String> map = new HashMap<>(); map.put("mobile", name); map.put("password", pwd); OkHttp3Utils.doPost("http://120.27.23.105/user/login", map, new Callback() { @Override public void onFailure(Call call, IOException e) { loginLister.setLoginEorr(); } @Override public void onResponse(Call call, Response response) throws IOException { String result = response.body().string(); Gson gson = new Gson(); JavaBean loginJavaBean = gson.fromJson(result, JavaBean.class); String code = loginJavaBean.getCode(); if ("0".equals(code)) { loginLister.setLoginSuccssful(loginJavaBean); SharedPreferences.Editor edit = sp.edit(); edit.putBoolean("flag", true); edit.putString("modile", name); edit.putString("pwd", pwd); edit.commit(); } } }); }}
2.2.3:Model层对应的接口
public interface LoginLister { public void setLoginSuccssful(JavaBean javaBean); public void setLoginEorr(); public void setLoginMobilePwdNull();}
- 登录注册mvp模式
- MVP 实现登录注册
- MVP注册登录
- MVP 登录注册
- MVP注册登录
- MVP 登录+注册
- MVP登录注册
- MVP登录注册
- MVP登录注册
- Mvp实现登录注册
- MVP登录注册跳转
- MVP登录注册
- MVP登录注册、跳转
- MVP实现登录注册
- 登录注册mvp
- 登录注册(MVp)
- MVP注册登录
- MVP登录注册
- 手撕Arm NEON 汇编 (引入)
- 论人生(1)
- HashSet和TreeSet的区别
- 最实用的10个重构小技巧排行榜,您都用过哪些呢?
- POJ 3061 Subsequence
- 登录注册mvp模式
- qqqqqqqqqqqq
- RecyclerView上拉刷新,下拉加载
- chrome插件开发
- springMVC上传,富文本上传和ftp服务器的配置
- 第三部分:Idea重构总结
- 给大家介绍一下,这是twitter的创始人@
- 需要有效的董事会
- python numpy