博客
关于我
【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/

    你可能感兴趣的文章
    Pandas 中的多索引旋转
    查看>>
    Pandas 中的日期范围
    查看>>
    pandas 中的时间序列箱线图
    查看>>
    Pandas 使用指南
    查看>>
    pandas 分组并使用最小值更新
    查看>>
    pandas 均值(mean), 均值填充NA(fill_na)
    查看>>
    Pandas 对数据框的布尔比较
    查看>>
    pandas 将通话数据分割为15分钟的间隔
    查看>>
    pandas 找到局部最大值和最小值
    查看>>
    pandas 按日期和年份分组,并汇总金额
    查看>>
    pandas 数据帧到PostgreSQL表中使用的是没有SQLAlChemy的心理复制2吗?
    查看>>
    pandas 数据框将 INT64 列转换为布尔值
    查看>>
    pandas 数据框条件 .mean() 取决于特定列中的值
    查看>>
    pandas 数据框至海运分组条形图
    查看>>
    pandas 时间序列重新采样结束给定的一天
    查看>>
    pandas 根据不是常量的第三列的值将值从一列复制到另一列
    查看>>
    pandas 根据值从多列中的一列查找
    查看>>
    Pandas 根据布尔条件选择行和列
    查看>>
    pandas 滚动窗口 - datetime64[ns] 未实现
    查看>>
    pandas 版本兼容特定的蟒蛇和NumPy配置吗?
    查看>>