Android 登陆功能的实现。

做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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值