mvp框架的实现( 最简陋版 )

第一篇(仅仅只是雏形)

  1. 首先展示包结构

    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);
}

猜你喜欢

转载自blog.csdn.net/qq_43589739/article/details/84841799