登录,数据展示,二维码

版权声明:叮叮叮!!!! https://blog.csdn.net/Xuexx_520/article/details/83983010

登录页面,包括自动登录,记住密码



public class MainActivity extends AppCompatActivity implements View.OnClickListener, LoginPresenter.MyListener {

    private EditText ed_tel;
    private EditText ed_pass;
    private CheckBox ck_jz;
    private CheckBox ck_zd;
    private Button login;
    private LoginPresenter mLoginPresenter;
    private SharedPreferences mSharedPreferences;
    private SharedPreferences.Editor mEditor;
    private LoginModel loginModel;
    private String username;
    private String password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //自定义控件
        initView();
        //当选中自动登录时,自动勾选记住密码
        ck_zd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(ck_zd.isChecked()){
                    ck_jz.setChecked(true);
                }
            }
        });

        mLoginPresenter=new LoginPresenter(this);
        loginModel=new LoginModel();
        //获得sp数据
        mSharedPreferences=getSharedPreferences("xxx",MODE_PRIVATE);
        boolean jz=mSharedPreferences.getBoolean("jz",false);
        boolean zd=mSharedPreferences.getBoolean("zd",false);
        String tel=mSharedPreferences.getString("tel","");
        String pass=mSharedPreferences.getString("pass","");
        //是否点击记住密码
        mLoginPresenter.isJz(jz,tel,pass);
        //是否点击自动登录
        mLoginPresenter.isZd(zd);



    }
 /*
 自定义控件
  */
    private void initView() {
        ed_tel = (EditText) findViewById(R.id.ed_tel);
        ed_pass = (EditText) findViewById(R.id.ed_pass);
        ck_jz = (CheckBox) findViewById(R.id.ck_jz);
        ck_zd = (CheckBox) findViewById(R.id.ck_zd);
        login = (Button) findViewById(R.id.login);
        username = ed_tel.getText().toString();
        password = ed_pass.getText().toString();
        login.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.login:
                username = ed_tel.getText().toString();
                password = ed_pass.getText().toString();
            new AsyncTask<String,Void,Login>(){
                @Override
                protected Login doInBackground(String... strings) {
                    loginModel = new LoginModel();
                    //获得数据
                    String textString= loginModel.login(strings[0]);
                    Login login=new Gson().fromJson(textString,Login.class);
                    return login;
                }

                @Override
                protected void onPostExecute(Login login) {
                    super.onPostExecute(login);
                    //判断登录成功失败
                    mLoginPresenter.checklogin(login);
                }
            }.execute("http://www.xieast.com/api/user/login.php?username="+ username +"&password="+ password);
                break;
        }
    }

/*
登录成功
 */
    @Override
    public void loginSuccess() {
        Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_SHORT).show();
        //判断是否记住密码
        if(ck_jz.isChecked()){
            mEditor=mSharedPreferences.edit();
            loginModel.setJz(mEditor,username,password);
        } else {
            mEditor=mSharedPreferences.edit();
            loginModel.cancelJz(mEditor,username,password);
        }
        //判断是否自动登录
        if(ck_zd.isChecked()){
            mEditor=mSharedPreferences.edit();
            loginModel.setZd(mEditor);
        }
        startActivity(new Intent(MainActivity.this,SuccessActivity.class));
        finish();


    }
/*
登录失败
 */
    @Override
    public void loginFailed(String msg) {
       Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
    }
/*
 记住密码时设置文本
 */
    @Override
    public void jzText(String tel,String pass) {
        ed_tel.setText(tel);
        ed_pass.setText(pass);
       ck_jz.setChecked(true);
    }

    @Override
    public void cancelText(String tel,String pass) {
        ed_tel.setText(tel);
        ed_pass.setText(pass);
        ck_jz.setChecked(false);
    }

    @Override
    public void zd() {
        ck_zd.setChecked(true);
        startActivity(new Intent(MainActivity.this,SuccessActivity.class));
        finish();
    }

/*
自动登录
 */
//    @Override
//    public void zd() {
//        startActivity(new Intent(MainActivity.this,SuccessActivity.class));
//    }
}

登录的Presenter



public class LoginPresenter {

    public MyListener mMyListener;

    public LoginPresenter(MyListener myListener) {
        mMyListener = myListener;
    }


    /*
        判断登录是否成功
         */
    public void checklogin(Login login) {
        if(login.getCode()==100){
            mMyListener.loginSuccess();

        } else {
            mMyListener.loginFailed(login.getMsg());
        }
    }

/*
是否记住密码
 */
    public void isJz(boolean jz, String tel, String pass) {

        if(jz==true){
            mMyListener.jzText(tel,pass);

        } else {
            mMyListener.cancelText(tel,pass);
        }
    }
/*
是否点击自动登录
 */
    public void isZd(boolean zd) {
        if(zd){
            mMyListener.zd();
        }
    }


    public interface MyListener{

        void loginSuccess();
        void loginFailed(String msg);
        void jzText(String tel, String pass);
        void cancelText(String tel, String pass);
        void zd();

    }




}

我的名片


public class MingFragment extends Fragment implements View.OnClickListener {


    private SharedPreferences mSharedPreferences;
    private SharedPreferences.Editor mEditor;
    private Bitmap mBitmap;
    private TextView username;
    private ImageView QRcode;
    private Button back;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_ming, container, false);
        initView(view);
        mSharedPreferences = getActivity().getSharedPreferences("xxx", getActivity().MODE_PRIVATE);
        //获得传过来的用户名
        String tel = mSharedPreferences.getString("tel", "");
        mBitmap = CodeUtils.createImage(tel, 400, 400, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
        QRcode.setImageBitmap(mBitmap);//设置图片
        username.setText(tel);//设置传过来的用户名


        return view;
    }

    private void initView(View view) {
        username = (TextView) view.findViewById(R.id.username);
        QRcode = (ImageView) view.findViewById(R.id.QRcode);
        back = (Button) view.findViewById(R.id.back);
        back.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.back:
              //退到主界面
                getActivity().finish();
                break;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/Xuexx_520/article/details/83983010
今日推荐