1. 程式人生 > >利用MVP寫登入介面

利用MVP寫登入介面

要先把介面類寫出來

public interface UserInterface{
        void succcess();
        void fild();
        void Rem(String name,String pwd);
    }
    public UserInterface mUserInterface;

注意 還有一步在MainActivity繼承介面之後去寫

在main中寫  log=new LoginPersenter(this);

然後再在介面中寫
    public LoginPersenter(UserInterface mainActivity) {
        mUserInterface=mainActivity;
    }

main中繼承介面後會出現三個方法把三個方法裡的功能寫完

@Override
//成功後所作的功能
    public void succcess() {
        Toast.makeText(this,"登入成功",Toast.LENGTH_SHORT).show();
        startActivity(new Intent(MainActivity.this,Show.class));
    }

    @Override
    //沒有登入上的
    public void fild() { Toast.makeText(this,"登入隨便吧",Toast.LENGTH_SHORT).show();


    }

    @Override
    //當記住密碼時
    public void Rem(String ppd, String name) {
          model.setText(name);
          pwd.setText(ppd);
          cb2.setChecked(true);
    }

當我們要記住密碼是要用到的是 SharedPreferences
getSharedPreferences(“ss”,MODE_PRIVATE);建立sharepreferences

假設我們介面類的名字叫LoginPersenter
判斷是否為空

String name = model.getText().toString();
                String pwd = this.pwd.getText().toString();

                user=new User();
                user.name=name;
                user.pwd=pwd;

                boolean ok=LoginPersenter.isNull(user);

//下面是在介面類中
      public static boolean isNull(User user) {
        if(TextUtils.isEmpty(user.name)||TextUtils.isEmpty(user.pwd)){
            return false;
        }
        return true;

    }
//接下來就是返回是否為空
如果不是空的
if(cb2.isChecked()){
    //如果記住密碼選中然後去介面中去做
                        Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
                        log.save(share,user);
                    }
//介面中用share去記住密碼和使用者名稱
public static void save(SharedPreferences share, User user) {
        SharedPreferences.Editor edit = share.edit();
        edit.putString("name",user.name);
        edit.putString("pwd",user.pwd);
        edit.putBoolean("rem",true);
        edit.commit();
    }
    然後在main中把user傳到介面中去判斷是不是正確的使用者名稱
    log.login(user);
    //介面中
    public void login(User user) {
        if (user.name.equals("1")&&user.pwd.equals("1")){
            mUserInterface.succcess();
        }else{
            mUserInterface.fild();
        }
    }

記住在介面中如果已經點選了記住密碼那麼在initview中就要寫

log.rem(share);

public void rem(SharedPreferences share) {
boolean rem = share.getBoolean(“rem”, false);
String name = share.getString(“name”, “”);
String pwd = share.getString(“pwd”, “”);
if(rem){
mUserInterface.Rem(name,pwd);
}
}
在manifests中註冊第二個頁面