MVP注册登录模块,结合数据库查询和添加数据
2017-11-11 17:45
465 查看
数据库的帮助类
public class MyOpenHelper extends SQLiteOpenHelper{
public MyOpenHelper(Context context) {
super(context, "day11.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库
db.execSQL("create table wht(username varchar(20),password varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
对数据库操作的类,,相当于MVP中的model
public class MyModel {
//注册 访问数据库
public void zhuce(Context context, String phone, String password, ZhuceModelCallBack zhuceModelCallBack) {
//注册成功的回调
// zhuceModelCallBack.zhuce_success();
MyOpenHelper openHelper = new MyOpenHelper(context);
SQLiteDatabase database = openHelper.getReadableDatabase();
database.execSQL("insert into wht(username,password) values(?,?)",new String[]{phone,password});
database.close();
//注册成功的回调
zhuceModelCallBack.zhuce_success();
}
//登录 访问数据库
public void denglu(Context context, String phone, String password, DengluModelCallBack dengluModelCallBack) {
MyOpenHelper openHelper = new MyOpenHelper(context);
SQLiteDatabase database = openHelper.getWritableDatabase();
Cursor cursor = database.rawQuery("select * from wht where username = ? and password = ?", new String[]{phone, password});
if(cursor.moveToNext()){
//如果找到了 就 成功的回调
dengluModelCallBack.denglu_success();
}else{
//没找到就失败的回调
dengluModelCallBack.denglu_fail();
}
}
}
presenter层里面 调用model中的注册 和 登录的方法
public class MyPresenter {
FragmentActivity activity;
ZhuceViewCallBack zhuceViewCallback;
LoginViewCallBack loginViewCallBack;
public MyPresenter(FragmentActivity activity,ZhuceViewCallBack zhuceViewCallback,LoginViewCallBack loginViewCallBack){
this.activity = activity;
this.zhuceViewCallback = zhuceViewCallback;
this.loginViewCallBack = loginViewCallBack;
}
//new出model对象
MyModel myModel = new MyModel();
public interface ZhuceViewCallBack {
//注册判断非空
public void zhu_phone_empty();
public void zhu_pass_empty();
public void zhu_success();
public void zhu_fail();
}
public interface LoginViewCallBack {
//登陆判断非空
public void deng_phone_empty();
public void deng_pass_empty();
public void deng_success();
public void deng_fail();
}
//p层里面的逻辑判断 非空
public void Zhuce_Panduan(String phone, String password) {
if(TextUtils.isEmpty(phone)){
//接口回调
zhuceViewCallback.zhu_phone_empty();
return;
}
if(TextUtils.isEmpty(password)){
//接口回调
zhuceViewCallback.zhu_pass_empty();
return;
}
myModel.zhuce(activity,phone,password, new ZhuceModelCallBack() {
@Override
public void zhuce_success() {
zhuceViewCallback.zhu_success();
}
});
}
//p层里面的逻辑判断 非空
public void Denglu_Panduan(String phone, String password) {
if(TextUtils.isEmpty(phone)){
//接口回调
loginViewCallBack.deng_phone_empty();
return;
}
if(TextUtils.isEmpty(password)){
//接口回调
loginViewCallBack.deng_pass_empty();
return;
}
myModel.denglu(activity,phone,password, new DengluModelCallBack() {
@Override
public void denglu_success() {
loginViewCallBack.deng_success();
}
@Override
public void denglu_fail() {
loginViewCallBack.deng_fail();
}
});
}
}
ZhuceFragment中 new出presenter对象,参数有当前activity,两个接口
public class ZhuceFragment extends Fragment {
private EditText zhu_phone;
private EditText zhu_password;
private Button zhuce;
private MyPresenter myPresenter;
//注册页面
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//填充布局
View view = inflater.inflate(R.layout.fragment_zhuce,container,false);
zhu_phone = (EditText) view.findViewById(R.id.zhu_phone);
zhu_password = (EditText) view.findViewById(R.id.zhu_password);
zhuce = (Button) view.findViewById(R.id.zhuce);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//new出presenter对象
myPresenter = new MyPresenter(getActivity(), new MyPresenter.ZhuceViewCallBack() {
@Override
public void zhu_phone_empty() {
Toast.makeText(getActivity(), "注册手机号不能为空", Toast.LENGTH_SHORT).show();
}
@Override
public void zhu_pass_empty() {
Toast.makeText(getActivity(),"注册密码不能为空",Toast.LENGTH_SHORT).show();
}
@Override
public void zhu_success() {
Toast.makeText(getActivity(),"注册成功!请前往登录页面!",Toast.LENGTH_SHORT).show();
}
@Override
public void zhu_fail() {
Toast.makeText(getActivity(),"不存在!",Toast.LENGTH_SHORT).show();
}
}, new MyPresenter.LoginViewCallBack() {
@Override
public void deng_phone_empty() {
}
@Override
public void deng_pass_empty() {
}
@Override
public void deng_success() {
}
@Override
public void deng_fail() {
}
});
//点击注册按钮 调用p层去逻辑判断非空
zhuce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//p层逻辑判断
myPresenter.Zhuce_Panduan(zhu_phone.getText().toString(),zhu_password.getText().toString());
}
});
}
}
public class MyOpenHelper extends SQLiteOpenHelper{
public MyOpenHelper(Context context) {
super(context, "day11.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库
db.execSQL("create table wht(username varchar(20),password varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
对数据库操作的类,,相当于MVP中的model
public class MyModel {
//注册 访问数据库
public void zhuce(Context context, String phone, String password, ZhuceModelCallBack zhuceModelCallBack) {
//注册成功的回调
// zhuceModelCallBack.zhuce_success();
MyOpenHelper openHelper = new MyOpenHelper(context);
SQLiteDatabase database = openHelper.getReadableDatabase();
database.execSQL("insert into wht(username,password) values(?,?)",new String[]{phone,password});
database.close();
//注册成功的回调
zhuceModelCallBack.zhuce_success();
}
//登录 访问数据库
public void denglu(Context context, String phone, String password, DengluModelCallBack dengluModelCallBack) {
MyOpenHelper openHelper = new MyOpenHelper(context);
SQLiteDatabase database = openHelper.getWritableDatabase();
Cursor cursor = database.rawQuery("select * from wht where username = ? and password = ?", new String[]{phone, password});
if(cursor.moveToNext()){
//如果找到了 就 成功的回调
dengluModelCallBack.denglu_success();
}else{
//没找到就失败的回调
dengluModelCallBack.denglu_fail();
}
}
}
presenter层里面 调用model中的注册 和 登录的方法
public class MyPresenter {
FragmentActivity activity;
ZhuceViewCallBack zhuceViewCallback;
LoginViewCallBack loginViewCallBack;
public MyPresenter(FragmentActivity activity,ZhuceViewCallBack zhuceViewCallback,LoginViewCallBack loginViewCallBack){
this.activity = activity;
this.zhuceViewCallback = zhuceViewCallback;
this.loginViewCallBack = loginViewCallBack;
}
//new出model对象
MyModel myModel = new MyModel();
public interface ZhuceViewCallBack {
//注册判断非空
public void zhu_phone_empty();
public void zhu_pass_empty();
public void zhu_success();
public void zhu_fail();
}
public interface LoginViewCallBack {
//登陆判断非空
public void deng_phone_empty();
public void deng_pass_empty();
public void deng_success();
public void deng_fail();
}
//p层里面的逻辑判断 非空
public void Zhuce_Panduan(String phone, String password) {
if(TextUtils.isEmpty(phone)){
//接口回调
zhuceViewCallback.zhu_phone_empty();
return;
}
if(TextUtils.isEmpty(password)){
//接口回调
zhuceViewCallback.zhu_pass_empty();
return;
}
myModel.zhuce(activity,phone,password, new ZhuceModelCallBack() {
@Override
public void zhuce_success() {
zhuceViewCallback.zhu_success();
}
});
}
//p层里面的逻辑判断 非空
public void Denglu_Panduan(String phone, String password) {
if(TextUtils.isEmpty(phone)){
//接口回调
loginViewCallBack.deng_phone_empty();
return;
}
if(TextUtils.isEmpty(password)){
//接口回调
loginViewCallBack.deng_pass_empty();
return;
}
myModel.denglu(activity,phone,password, new DengluModelCallBack() {
@Override
public void denglu_success() {
loginViewCallBack.deng_success();
}
@Override
public void denglu_fail() {
loginViewCallBack.deng_fail();
}
});
}
}
ZhuceFragment中 new出presenter对象,参数有当前activity,两个接口
public class ZhuceFragment extends Fragment {
private EditText zhu_phone;
private EditText zhu_password;
private Button zhuce;
private MyPresenter myPresenter;
//注册页面
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//填充布局
View view = inflater.inflate(R.layout.fragment_zhuce,container,false);
zhu_phone = (EditText) view.findViewById(R.id.zhu_phone);
zhu_password = (EditText) view.findViewById(R.id.zhu_password);
zhuce = (Button) view.findViewById(R.id.zhuce);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//new出presenter对象
myPresenter = new MyPresenter(getActivity(), new MyPresenter.ZhuceViewCallBack() {
@Override
public void zhu_phone_empty() {
Toast.makeText(getActivity(), "注册手机号不能为空", Toast.LENGTH_SHORT).show();
}
@Override
public void zhu_pass_empty() {
Toast.makeText(getActivity(),"注册密码不能为空",Toast.LENGTH_SHORT).show();
}
@Override
public void zhu_success() {
Toast.makeText(getActivity(),"注册成功!请前往登录页面!",Toast.LENGTH_SHORT).show();
}
@Override
public void zhu_fail() {
Toast.makeText(getActivity(),"不存在!",Toast.LENGTH_SHORT).show();
}
}, new MyPresenter.LoginViewCallBack() {
@Override
public void deng_phone_empty() {
}
@Override
public void deng_pass_empty() {
}
@Override
public void deng_success() {
}
@Override
public void deng_fail() {
}
});
//点击注册按钮 调用p层去逻辑判断非空
zhuce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//p层逻辑判断
myPresenter.Zhuce_Panduan(zhu_phone.getText().toString(),zhu_password.getText().toString());
}
});
}
}
相关文章推荐
- 使用MVP注册登录模块+封装的OKhttp,拦截器+QQ第三方登录+RecyclerView+SpringView上拉加载下拉刷新网络数据
- 042医疗项目-模块四:采购单模块—采购单明细添加查询,并且把数据添加到数据库中
- 结合数据库登录注册模块,登录成功之后跳到WebView
- hibernate分页查询,在自己写的s2sh注册登录的基础上添加对数据表的分页显示功能
- MVP_注册登录 + 展示数据
- MVP注册登录显示数据
- 结合PHP脚本添加和查询MySQL数据的基本教程
- 注册-登录-数据都存在数据库里面-注册的时候,密码存的是加密之后的密码-登录成功之后打印当前的日期
- 数据添加步骤(vb6.0与数据库结合)
- 数据添加步骤(vb6.0与数据库结合)
- MySql cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)
- 数据库的数据添加和查询
- c#数据绑定之向查询中添加参数(.Net连接外部数据库)
- unity 登录注册页面数据传递(无数据库)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加查询
- php bug查询数据:数据库请求数据,关联数组会自动添加索引 重复一遍数据
- 笔记 Java web实现用户登录、数据库数据查询、数据删除等功能
- andriod开发利用MVP实现登录注册和加载网络数据
- ip物理定位搜索类 与配合结合纯真数据库qqwry.dat完美结合,可以查询世界各地数据库,可以做网站按地区登录不同的地区网站
- mybatis学习笔记二mybatis结合spring mvc实现(用户登录,数据查询)