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