Android端与web端以及数据库的建立它们之间的交互详解与案例分析

本项目是笔者利用十天的实训时间完成,之间掌握并学到了不少关于Android和web方面的知识,比如:json的数据交换,ListViewAdapter适配器的使用以及网络请求web端交互的问题。趁热打铁,就想拿出来分享一下。案例《黄河河道管理系统》:

此项目具有以下功能的实现:

1.登陆功能的实现

2.上传界面的所有功能上传成功的实现

3.上传历史的展示功能

4.退出功能


本项目是笔者利用十天的实训时间完成,之间掌握并学到了不少关于Android和web方面的知识,比如:json的数据交换,ListViewAdapter适配器的使用以及网络请求web端交互的问题。趁热打铁,就想拿出来分享一下。案例《黄河河道管理系统》:
登录功能:
在数据库中新建应用的表以及账号和密码等需要的属性,然后由web端注册一个手机用户。Android方面实现网络请求,利用Json解析数据进行交换,连接到web端,实现登录成功。Android主要实现代码如下:
//登录按钮的点击事件处理
public  void btn_login_click(View view){
    //1.调用网络访问进行登录
    String loginid = et_number.getText().toString().trim();
    String password = et_password.getText().toString().trim();
    doLogin(loginid, password);
}
//调用网络访问进行登录
private void doLogin(String loginid, String password){
    //1.调用网络进行登录
    AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
    RequestParams params = new RequestParams();
    params.put("user.loginid", loginid);
    params.put("user.password", password);
    //url:   parmas:请求时携带的参数信息   responseHandler:是一个匿名内部类接受成功过失败
    String url = UrlConst.LOGIN;//此登录地址为你数据库表里的属性与它相同,才能判断是否登录成功
    asyncHttpClient.post(url, params, new AsyncHttpResponseHandler() {

        @Override
        public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody) {
            //statusCode:状态码    headers:头信息  responseBody:返回的内容,返回的实体

            //判断状态码
            if(statusCode == 200){
                //获取结果
                try {
                    String result = new String(responseBody,"utf-8");
                    //Toast.makeText(LoginActivity.this, result, Toast.LENGTH_LONG).show();
                    Gson gson = new Gson();
                    JsonResult jsonResult = gson.fromJson(result, JsonResult.class);
                    //Toast.makeText(LoginActivity.this, jsonResult.getMessage(), Toast.LENGTH_LONG).show();
                    //2.判断返回的json数据
                    //2.1若返回json数据success为true的话,调用保存密码与自动登录状态的方法
                    if(jsonResult.isSuccess()){   //2.1成功,则进入主界面
                        savePassAndAutoLogin();
                        Intent intent = new Intent(Login.this, History.class);
                        startActivity(intent);
                    }else{   //2.2失败则显示提示信息
                        new AlertDialog.Builder(Login.this).setTitle("信息提示")
                                .setIcon(R.mipmap.ic_launcher)
                                .setMessage(jsonResult.getMessage())
                                .setPositiveButton("确定", null)
                                .setNegativeButton("取消", null)
                                .create().show();
                    }
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
        }
        @Override
        public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers,
                              byte[] responseBody, Throwable error) {
        }
    });
}
侧重讲述一下Json的用法:
JSON 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
通俗易懂的讲就是传输数据,易于解析数据进行数据格式的交换。
关于数据的上传关注我下一篇博客。。。。
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值