zoukankan      html  css  js  c++  java
  • 大二下学期团队项目(用户登录注册实现)

    只是实现了app端简单的用户登录于注册的实现,输入手机号,密码即可注册与登录,也无法发送手机验证码。注册将数据存入数据库,完成一次登录后会记住密码。

    登录的activity

    package com.example.cloudlibrary;
    
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.util.Log;
    import android.view.View;
    import android.view.ViewTreeObserver;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageButton;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.example.cloudlibrary.Data.AllData;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import org.xutils.common.Callback;
    import org.xutils.http.RequestParams;
    import org.xutils.x;
    
    import java.util.StringJoiner;
    
    public class SigninActivity extends AppCompatActivity implements View.OnClickListener,
            View.OnFocusChangeListener, ViewTreeObserver.OnGlobalLayoutListener,
            TextWatcher {
    //    private String TAG = "ifu25";
    //
    //    private ImageButton mIbNavigationBack;
    //    private LinearLayout mLlLoginPull;
    //    private View mLlLoginLayer;
    //    private LinearLayout mLlLoginOptions;
    //    private EditText mEtLoginUsername;
    //    private EditText mEtLoginPwd;
    //    private LinearLayout mLlLoginUsername;
    //    private ImageView mIvLoginUsernameDel;
    //    private Button login_submit;
    //    private LinearLayout mLlLoginPwd;
    //    private ImageView mIvLoginPwdDel;
    //    private ImageView mIvLoginLogo;
    //    private LinearLayout mLayBackBar;
    //    private TextView mTvLoginForgetPwd;
    //    private Button login_register;
    //
    //    //全局Toast
    //    private Toast mToast;
    //
    //    private int mLogoHeight;
    //    private int mLogoWidth;
        private EditText login_phone;
        private EditText login_pass;
        private Button login_register;
        private Button login_submit;
        private AllData allData=new AllData();
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_signin);
            initView();
        }
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(data!=null){
                Log.e("TAG",data.getStringExtra("user_password")+data.getStringExtra("user_phone"));
                login_pass.setText(data.getStringExtra("user_password"));
                login_phone.setText(data.getStringExtra("user_phone"));
                String user_name=data.getStringExtra("user_phone");
                SharedPreferences.Editor editor=getSharedPreferences("userdata",MODE_PRIVATE).edit();
                editor.clear();
                editor.putString("user_password",login_pass.getText().toString());
                editor.putString("user_phone",login_phone.getText().toString());
                editor.putString("user_name",user_name);
                editor.commit();
            }
        }
        private void initView() {
            login_register=(Button)findViewById(R.id.login_register);
            login_register.setOnClickListener(this);
            login_submit=(Button)findViewById(R.id.login_submit);
            login_submit.setOnClickListener(this);
            login_phone=(EditText)findViewById(R.id.login_phone);
            login_pass=(EditText)findViewById(R.id.login_pass);
            SharedPreferences sp=getSharedPreferences("userdata",MODE_PRIVATE);
            login_phone.setText(sp.getString("user_phone",""));
            login_pass.setText(sp.getString("user_password",""));
            String name=sp.getString("user_name","");
            Log.e("TAG",login_pass.getText().toString()+","+login_phone.getText().toString()+","+name);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.login_register:
                    //注册
                    startActivityForResult(new Intent(SigninActivity.this, RegisterActivity.class),1);
                    break;
                case R.id.login_submit:
                    //登录
                    RequestParams params = new RequestParams("http://"+ allData.getUrl() +":5000/android_query_user");
                    //params.setMultipart(true);
                    String phone=login_phone.getText().toString();
                    params.addBodyParameter("phone", phone);
                    //params.addBodyParameter("File",new File(Environment.getExternalStorageDirectory()+"/test_download/YLY.jpg"),null,"YLY.jpg");
                    x.http().get(params, new Callback.CacheCallback<String>() {
    
                        @Override
                        public boolean onCache(String result) {
                            return false;
                        }
    
                        @Override
                        public void onSuccess(String result) {
                            try {
                                JSONObject object= null;
                                object = new JSONObject(result);
                                JSONArray array=object.optJSONArray("data");
                                if(login_pass.getText().toString().equals(array.getString(1)))
                                {
                                    SharedPreferences.Editor editor=getSharedPreferences("userdata",MODE_PRIVATE).edit();
                                    editor.clear();
                                    editor.putString("user_password",login_pass.getText().toString());
                                    editor.putString("user_phone",login_phone.getText().toString());
                                    editor.putString("user_name",array.getString(3));
                                    editor.commit();
                                    Toast.makeText(SigninActivity.this,"登录成功",Toast.LENGTH_LONG).show();
                                    startActivity(new Intent(SigninActivity.this, MainActivity.class));
                                }else{
                                    Toast.makeText(SigninActivity.this,"密码或手机号错误",Toast.LENGTH_LONG).show();
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
    
                        @Override
                        public void onError(Throwable ex, boolean isOnCallback) {
                            Log.e("TAG", "onError==" + ex.toString());
                        }
    
                        @Override
                        public void onCancelled(CancelledException cex) {
                            Log.e("TAG", "onCancelled==" + cex.toString());
                        }
    
                        @Override
                        public void onFinished() {
                            Log.e("TAG", "onFinished");
                        }
                    });
                    break;
            }
    
        }
    
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
    
        }
    
        @Override
        public void onGlobalLayout() {
    
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
    
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
        }
    }

    注册的activity

    package com.example.cloudlibrary;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.CountDownTimer;
    import android.text.TextUtils;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.example.cloudlibrary.Adapter.CloudPagerAdapter;
    import com.example.cloudlibrary.Data.AllData;
    import com.example.cloudlibrary.Data.ListData;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    import org.xutils.common.Callback;
    import org.xutils.http.RequestParams;
    import org.xutils.x;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{
        private static final String TAG = "MainActivity";
        private EditText register_username;
        private EditText register_userpass;
        private EditText register_userpass2;
        private EditText register_userphone;
        private EditText register_code;
        private TextView register_getcode;
        private Button register_submit;
        private int type = 1;
        private AllData allData=new AllData();
        private CountDownTimer mCountDownTimer = new CountDownTimer(60000, 1000) {
            @Override
            public void onTick(long l) {
                register_getcode.setText((l / 1000 )+ "秒后可重发");
            }
    
            @Override
            public void onFinish() {
                register_getcode.setEnabled(true);
                register_getcode.setText("获取验证码");
            }
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            register_username = (EditText) findViewById(R.id.register_username);
            register_userpass = (EditText) findViewById(R.id.register_userpass);
            register_userpass2 = (EditText) findViewById(R.id.register_userpass2);
            register_userphone= (EditText) findViewById(R.id.register_userphone);
    //        register_code = (EditText) findViewById(R.id.register_code);
    //        register_getcode = (TextView)findViewById(R.id.register_getcode);
            register_submit = (Button) findViewById(R.id.register_submit);
    //        register_getcode.setOnClickListener(this);
            register_submit.setOnClickListener(this);
        }
        @Override
        public void onClick(View v) {
            int flag=1;
            String phone = register_userphone.getText().toString().trim();
    //        String code =register_code.getText().toString().trim();
            String password = register_userpass.getText().toString().trim();
            String repassword = register_userpass2.getText().toString().trim();
            String name = register_username.getText().toString().trim();
            judgePhoneNums(phone,flag);
            if(password.isEmpty()){
                Toast.makeText(this, "密码不能为空",Toast.LENGTH_SHORT).show();
                flag=0;
            }
            if(name.isEmpty()){
                Toast.makeText(this, "用户昵称不能为空",Toast.LENGTH_SHORT).show();
                flag=0;
            }
            if(!password.equals(repassword)){
                Toast.makeText(this, "两次密码不一样",Toast.LENGTH_SHORT).show();
                flag=0;
            }
            if(flag==1){
                RequestParams params = new RequestParams("http://"+ allData.getUrl() +":5000/android_register");
                //params.setMultipart(true);
                params.addBodyParameter("name", name);
                params.addBodyParameter("phone", phone);
                params.addBodyParameter("password", password);
                //params.addBodyParameter("File",new File(Environment.getExternalStorageDirectory()+"/test_download/YLY.jpg"),null,"YLY.jpg");
                x.http().get(params, new Callback.CacheCallback<String>() {
    
                    @Override
                    public boolean onCache(String result) {
                        return false;
                    }
    
                    @Override
                    public void onSuccess(String result) {
                        try {
                            JSONObject object= null;
                            object = new JSONObject(result);
                            int Flag=object.optInt("data");
                            if(Flag==1){
                                Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_LONG).show();
                                Intent intent=new Intent();
                                intent.putExtra("user_password",password);
                                intent.putExtra("user_phone",phone);
                                intent.putExtra("user_name",name);
                                setResult(1,intent);
                                finish();
                            }else{
                                Toast.makeText(RegisterActivity.this,"注册失败",Toast.LENGTH_LONG).show();
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
    
                    @Override
                    public void onError(Throwable ex, boolean isOnCallback) {
                        Log.e("TAG", "onError==" + ex.toString());
                    }
    
                    @Override
                    public void onCancelled(CancelledException cex) {
                        Log.e("TAG", "onCancelled==" + cex.toString());
                    }
    
                    @Override
                    public void onFinished() {
                        Log.e("TAG", "onFinished");
                    }
                });
            }
    //        switch (v.getId()) {
    //            case R.id.register_getcode:
    //                register_getcode.requestFocus();
    //                if (!judgePhoneNums(phone)) {
    //                    return;
    //                } else {
    //                    mCountDownTimer.start();
    //                    //这里的服务器接口是无效的需要换成你自己获取验证码的接口地址
    //                    RequestParams params = new RequestParams("https://www.baidu.com/?tn=40020637_6_oem_dg");
    //                    String str = String.valueOf(type);
    //                    //需要携带的参数
    //                    params.addBodyParameter("phone", phone);
    //                    params.addBodyParameter("type", str);
    //                    x.http().get(params, new Callback.CacheCallback<String>() {
    //                        @Override
    //                        public void onSuccess(String result) {
    //                            Log.e(TAG, result.toString());
    //                            register_code.setText(result.toString());
    //                        }
    //
    //                        @Override
    //                        public void onError(Throwable ex, boolean isOnCallback) {
    //
    //                        }
    //
    //                        @Override
    //                        public void onCancelled(CancelledException cex) {
    //
    //                        }
    //
    //                        @Override
    //                        public void onFinished() {
    //
    //                        }
    //
    //                        @Override
    //                        public boolean onCache(String result) {
    //                            return false;
    //                        }
    //                    });
    //                }
    //                break;
    //            case R.id.register_submit:
    //                if (!judgePhoneNums(phone)) {
    //                    return;
    //                } else if(TextUtils.isEmpty(code)) {
    //                    Toast.makeText(this, "验证码不能为空", Toast.LENGTH_SHORT).show();
    //                } else if(password.length() < 6 ) {
    //                    Toast.makeText(this, "请输入长度大于6位的密码", Toast.LENGTH_SHORT).show();
    //                } else if(!TextUtils.equals(password,repassword)) {
    //                    Toast.makeText(this, "两次输入的密码不一致", Toast.LENGTH_SHORT).show();
    //                } else if(register_submit == v) {
    //                    //这里的服务器接口是无效的需要换成你自己的注册接口地址
    //                    RequestParams params = new RequestParams("http://api.php/Public/smsRegister");
    //                    //需要带入的参数
    //                    params.addBodyParameter("phone", phone);
    //                    params.addBodyParameter("captcha", code);
    //                    params.addBodyParameter("password", password);
    //                    params.addBodyParameter("repassword", repassword);
    //                    x.http().post(params, new Callback.CacheCallback<String>() {
    //                        @Override
    //                        public void onSuccess(String result) {
    //                            Log.e(TAG, result.toString());
    //                        }
    //
    //                        @Override
    //                        public void onError(Throwable ex, boolean isOnCallback) {
    //
    //                        }
    //
    //                        @Override
    //                        public void onCancelled(CancelledException cex) {
    //
    //                        }
    //
    //                        @Override
    //                        public void onFinished() {
    //
    //                        }
    //
    //                        @Override
    //                        public boolean onCache(String result) {
    //                            return false;
    //                        }
    //                    });
    //                    break;
    //                }
    //        }
        }
        private boolean judgePhoneNums(String phoneNums,int flag) {
            if (isMatchLength(phoneNums, 11) && isMobileNO(phoneNums)) {
                return true;
            }
            Toast.makeText(this, "请输入正确的手机号",Toast.LENGTH_SHORT).show();
            flag=0;
            return false;
        }
    
        /**
         * 判断一个字符串的位数
         * @param str
         * @param length
         * @return
         */
        public static boolean isMatchLength(String str, int length) {
            if (str.isEmpty()) {
                return false;
            } else {
                return str.length() == length ? true : false;
            }
        }
    
        /**
         * 验证手机格式
         */
        public static boolean isMobileNO(String mobileNums) {
            String strTel = "[1][358]\d{9}";
            if (TextUtils.isEmpty(mobileNums))
                return false;
            else
                return mobileNums.matches(strTel);
        }
    }
  • 相关阅读:
    代码、复制[置顶] 跑起来,第一个sshby小雨
    返回、参数了解Javascript函数:parseInt()by小雨
    代码、复制Javascript执行效率小结by小雨
    图片、JQuery学习笔记(图片的展开和伸缩)by小雨
    登录、项目Spring mvc Session拦截器by小雨
    社区、标签jsp中获取状态怎么写?by小雨
    升级、地方LKDBHelper 使用FMDB 对数据库的自动操作by小雨
    广播、应用Android BroadcastReceiver(一)by小雨
    调试、手机手游开发知识(三)--NDK联机调试by小雨
    设置、数值【Cocos2DX 】初窥门径(11)CCUserDefault:保存数据by小雨
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14791728.html
Copyright © 2011-2022 走看看