第一篇(仅仅只是雏形)
-
首先展示包结构
2.我们首先要清楚mvp实现的方式
MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model。
Activity中的操作public class MainActivity extends AppCompatActivity implements View.OnClickListener,BasicLogin { private EditText mobile,password; private Button butLogin; private MyPresent myPresent; private Dao dao; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化 mobile = (EditText) findViewById(R.id.mobile); password = (EditText) findViewById(R.id.password); butLogin = (Button) findViewById(R.id.but_login); dao = new Dao(MainActivity.this); butLogin.setOnClickListener(this); Cursor query = dao.query("shuju", null, null, null, null, null, null); if (query.moveToFirst()){ /* do { String username = query.getString(query.getColumnIndex("username")); String password = query.getString(query.getColumnIndex("password")); }while(query.moveToNext());*/ startActivity(new Intent(MainActivity.this,Main2Activity.class)); finish(); } } @Override public void onClick(View v) { String mobile = this.mobile.getText().toString().trim(); String pwd = this.password.getText().toString().trim(); if (mobile.equals("")||pwd.equals("")){ Toast.makeText(MainActivity.this,"不可以为空",Toast.LENGTH_SHORT).show(); return; } myPresent = new MyPresent(this,MainActivity.this); myPresent.login(mobile,pwd); } @Override public void callBack(User data , Context context) { Toast.makeText(getBaseContext(),"欢迎"+data.getData().getUsername()+"登录",Toast.LENGTH_LONG).show(); intent = new Intent(MainActivity.this,Main2Activity.class); String keys = data.getData().getUsername(); intent.putExtra("keys",keys); startActivity(intent); } }
MyPresent
public class MyPresent {
private BasicLogin dataCall;
private Context context;
private Dao dao;
public MyPresent(BasicLogin dataCall, Context context){
this.dataCall = dataCall;
this.context = context;
}
private Handler mHandler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message msg) {
User loginData = (User) msg.obj;
Dao dao = new Dao(context);
//数据库
ContentValues values = new ContentValues();
values.put("username",loginData.getData().getUsername());
values.put("password",loginData.getData().getPassword());
dao.insert("shuju",null,values);
dataCall.callBack(loginData,context);
}
};
//Presentle_login
public void login(final String mobile , final String password){
new Thread(new Runnable() {
@Override
public void run() {
User loginuser = MyLoginModel.login(mobile, password);
Message message = mHandler.obtainMessage();
message.obj = loginuser;
mHandler.sendMessage(message);
}
}).start();
}
}
myLoginModel
public class MyLoginModel {
//网络请求gson解析login方法
public static User login(String mobile, String password){
String loginData = MyConnecUtils.getString("http://www.zhaoapi.cn/user/login?mobile="
+mobile+"&password="+password);
Gson gson = new Gson();
User user = gson.fromJson(loginData, User.class);
return user;
}
}
BasicLogin
public interface BasicLogin {
//写回调方法<loginDataCallBack>
void callBack(User data, Context context);
}