Android 登陆功能的实现。

来源:互联网 发布:it行业 云计算 编辑:程序博客网 时间:2024/05/01 05:22

做android开发时间不长,与服务器打交道基本不会,花了二天时间才把登陆功能实现。下面讲一下实现过程。
s首先,导入两个包:volley 框架包和gson包

compile files('libs/volley_source.jar')compile 'com.google.code.gson:gson:2.8.0'

z再次,核心代码:

private void init() {        loginAccount = (EditText) findViewById(R.id.login_account);        loginPassword = (EditText) findViewById(R.id.login_password);        loginBtn = (Button) findViewById(R.id.login_btn);        loginBtn.setOnClickListener(new Button.OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                String account = loginAccount.getText().toString();//账号                String password = loginPassword.getText().toString();//密码//                 判断输入是否为空                if (!TextUtils.isEmpty(account) && !TextUtils.isEmpty(password)                        ) {                    HashMap map = new HashMap<String, String>();                    map.put("UserName", account);                    map.put("UserPass", password);                    loginRequest(Request.Method.POST, UrlConstance.APP_URL, map);                } else {                    Toast.makeText(LoginActivity.this, "账号或者密码有误", Toast.LENGTH_SHORT).show();                }            }        });    }    String resultCode;    //                              post方法           url地址          参数    private void loginRequest(int post, final String appUrl, final HashMap map) {        StringRequest stringRequest = new StringRequest(                post,                appUrl,                new Response.Listener<String>() {                    @Override                    public void onResponse(String s) {                        if (map != null) {//                           Gson 直接解析   UserBaseInfo类 这个类包含一个code和 一个msg实体类 msg中包含用户的信息//                            如果map(输入框输入的不为空) 进入Gson解析                            try {                                JSONObject jsonObject = new JSONObject(s);                                 resultCode = jsonObject.getString("code");                            } catch (JSONException e) {                                e.printStackTrace();                            }                            if (resultCode.equals("1")){//                                如果userBaseInfo.getCode().equals(1)则再次解析对msg解析 这次是                                UserBaseInfo info = new Gson().fromJson(s, new TypeToken<UserBaseInfo>(){                                }.getType());//                                Intent intent = new Intent(LoginActivity.this,MainActivity.class);                                startActivity(intent);                            }else {                                Toast.makeText(getApplicationContext(), "用户名或密码错误1", Toast.LENGTH_LONG).show();                            }                        }else {                            Toast.makeText(getApplicationContext(), "用户名或密码错误2", Toast.LENGTH_LONG).show();                        }                    }                }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {                Log.e("LoginActivity", "volleyError:" + volleyError);            }        }) {            @Override            protected Map<String, String> getParams() throws AuthFailureError {                return map;            }        };        mQueue.add(stringRequest);    }
1 0
原创粉丝点击