博客
关于我
【Android项目实战 | 从零开始写app(14)】实现用户中心模块清除token退出登录 & 信息修改等功能
阅读量:513 次
发布时间:2019-03-07

本文共 1676 字,大约阅读时间需要 5 分钟。

Android项目实战 | 从零开始写app(13):实现服务页面数据的解析

模块介绍

在前面的系列文章中,我们已经完成了登录模块的实现,用户成功登录后可以在用户中心页面查看个人信息、订单列表等功能。本篇将重点介绍如何实现用户中心页面的数据展示以及相关功能的实现。


功能逻辑实现

UserFragment类

在UserFragment中,我们主要实现了以下功能:

  • 用户信息展示:通过SharedPreferences读取本地保存的登录信息,显示用户名和用户头像。
  • 页面跳转:实现了点击各功能模块的跳转,如个人信息、订单列表、修改密码等。
  • 退出登录:通过SharedPreferences清除本地保存的token值并跳转到登录页面。
  • AdviseActivity类

    意见反馈页面实现了以下功能:

  • 用户输入反馈内容:使用EditText让用户输入反馈意见。
  • 发送反馈:通过OkHttp发送POST请求到服务端,携带token进行验证。
  • UI反馈:使用Handler和Toast显示反馈结果。
  • UpdataPSWActivity类

    修改密码页面实现了以下功能:

  • 用户输入相关信息:包括用户编号、旧密码和新密码。
  • 发送修改请求:通过OkHttp发送POST请求到服务端,携带token进行验证。
  • UI反馈:使用Gson解析响应数据,显示修改结果。
  • UserInfoActivity类

    修改个人信息页面实现了以下功能:

  • 用户输入信息:包括昵称、手机号、邮箱、证件信息和性别。
  • 发送修改请求:通过OkHttp发送POST请求到服务端,携带token进行验证。
  • UI反馈:使用Gson解析响应数据,显示修改结果。

  • 技术实现细节

    SharedPreferences的使用

    在整个项目中,我们使用SharedPreferences来存储和读取token值。例如:

    SharedPreferences sp = getActivity().getSharedPreferences("token_data", Context.MODE_PRIVATE);String token = sp.getString("token","");

    退出登录时,通过editor清除token值并提交:

    SharedPreferences.Editor editor = sp.edit();editor.clear();editor.apply();

    OkHttp的使用

    在发送请求时,我们使用OkHttp库来处理HTTP协议。例如:

    OkHttpClient client = new OkHttpClient();RequestBody requestBody = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), json.toString());Request request = new Request.Builder()    .url(APIConfig.BASE_URL + "/userinfo/feedback")    .addHeader("Authorization", token)    .build();

    Gson的使用

    用于解析JSON响应数据。例如:

    Gson gson = new Gson();LoginBean loginBean = gson.fromJson(result, LoginBean.class);

    常见问题

  • 图片加载问题:在fragment_user.xml中,图片使用了src属性,建议使用 UNIVERSAL_IMAGE_LOADING库来优化图片加载。
  • UI更新问题:在网络请求中,UI更新需要通过runOnUiThread或AsyncTask进行,避免在主线程进行耗时操作。

  • 总结

    通过以上实现,我们完成了用户中心页面的数据展示和功能模块的开发。下一篇将重点介绍订单列表的实现,包括数据解析和 ListView 适配器的开发。

    转载地址:http://bzacz.baihongyu.com/

    你可能感兴趣的文章
    PHP兼容性检查,PHP升级语法检查(PHPCompatibility+PHP_CodeSniffer)
    查看>>
    PHP内核介绍及扩展开发指南—基础知识
    查看>>
    php内核基础说明
    查看>>
    PHP写日志fwrite和file_put_contents的区别与性能
    查看>>
    PHP写计划任务
    查看>>
    PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
    查看>>
    PHP函数
    查看>>
    React input defaultValue不会更新状态怎么办?
    查看>>
    PHP函数__autoload失效原因(与smarty有关)
    查看>>
    PHP函数判断移动端和PC端
    查看>>
    Springboot基础入门
    查看>>
    php函数性能优化中应注意哪些问题?
    查看>>
    PHP函数操作数字和汉字互转(100以内)
    查看>>
    PHP函数方法
    查看>>
    PHP创建目录mkdir无写入权限的问题解决方案
    查看>>
    PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
    查看>>
    php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
    查看>>
    React Collapse Pane 项目教程
    查看>>
    php判断ip黑名单程序代码
    查看>>
    php判断复选框是否被选中的方法
    查看>>