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

来源:互联网 发布:重庆大学数据图书馆 编辑:程序博客网 时间:2024/06/16 18:42

本项目是笔者利用十天的实训时间完成,之间掌握并学到了不少关于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 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
通俗易懂的讲就是传输数据,易于解析数据进行数据格式的交换。
关于数据的上传关注我下一篇博客。。。。
原创粉丝点击