基于人人网客户端进行推广与营销的这个项目已接近尾声。回想自己这2个月以来对Android的学习,有不少收获。尽管在整个过程中遇到过不少问题,但最终还是解决了。

在这里,记录一下自己在整个过程中碰到的问题与解决方案。

我负责的是“好友”界面部分,主要需要实现的功能如下

1.          使用一个List View显示好友列表,其中,每个Item包含用户头像/姓名/ID,并使用数据库保存.

第一个遇到的问题便是对图片的保存。因为是网络图片,且List View使用的是Simple Adapter设置每个Item的内容,而Simple Adapter是不支持map(?, ?)中保存Bitmap的。

最后在网上搜了一下,普遍采用实现View Binder接口来解决这一问题。

fAdapter.setViewBinder(new ViewBinder() {publicboolean setViewValue(View view, Object data,StringtextRepresentation) {// 判断是否为我们要处理的对象if (view instanceof ImageView && data instanceof Bitmap) {ImageViewiv = (ImageView) view;iv.setImageBitmap((Bitmap)data);returntrue;}elsereturnfalse;}});

在这里,view就是自定义的布局,而data则是传入的list数据。此函数将遍历布局中的各个组件,从而使data中保存的图片传入Simple Adapter。

2. 为Item设置单击事件,先获取每个Item的ID,之后通过Intent传送过去,在另一个界面显示好友的基本信息.其布局为Scroll View中 嵌套 List View。话说,最初看到官方客户端的时候还弄不明白,为什么不在一个界面上显示所有的信息?后来就发现了下面这种布局的问题了。在真机上测试时,对Scroll View的拖动会影响List View的拖动。其实,最好的方式应该是使用ExpandableListView。其次,就是在不同的手机中,显示的信息将不能和背景图片吻合。之前想着UI要做的酷炫,却忽略了布局要适应所有不同尺寸的设备。

                       

2.          最后还有比较疑惑的问题就是,解析出来的”JSON”数据需要做一定的处理

比如下面这个

这里,需要将得到的”DOCTOR”, ”COLLEGE”等转换为与之对应的“博士”, “本科”等。否则会显示

我的想法是,使用一个数组进行转换。即,“博士”、“本科”这些添加到一个数组中,然后将最终解析出的数据与之一一比较,从而得到预期的效果。

//最后,我要深深为我的英语水平感到惭愧!!!在解析某个数据的时候,由于将某个单词拼错而未能使信息显示出来。我屮艸芔茻,又是改布局,又是查Activity代码,艹,最终鬼使神差的找到了错误!

转载于:https://blog.51cto.com/anglecode/1532135

Android学习笔记相关推荐

  1. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  2. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

  3. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  4. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  5. Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...

  6. Android学习笔记:TabHost 和 FragmentTabHost

    2019独角兽企业重金招聘Python工程师标准>>> Android学习笔记:TabHost 和 FragmentTabHostTabHost命名空间:android.widget ...

  7. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...

  8. Android学习笔记:TabHost 和 FragmentTabHost(转)

    Android学习笔记:TabHost 和 FragmentTabHost(转) 转自:http://www.cnblogs.com/asion/p/3339313.html 作者:Asion Tan ...

  9. Pro Android学习笔记(三三):Menu(4):Alternative菜单

    什么是Alternative menu(替代菜单) 举个例子,Activity显示一个文本文件.如果用户想对文本文件进行编辑,Activity不提供编辑能力,但可由其他activity或者其他应用提供 ...

  10. Android学习笔记之(一)开发环境搭建

    Android学习笔记之(一)开发环境搭建 zouxy09@qq.com http://blog.csdn.net/zouxy09 至于说Android是什么之类的俺就不啰嗦了,因为它离我们太近了.直 ...

最新文章

  1. 【linux】Valgrind工具集详解(七):Memcheck(内存错误检测器)
  2. 【Swift】变量/常量/类型总结
  3. 紧随时代发展 安防消费也在悄然发生改变
  4. oauth2和jwt_OAuth2,JWT,Open-ID Connect和其他令人困惑的事物
  5. 信息学奥赛一本通C++语言——1100:金币
  6. rabbitmq实战_RabbitMQ实战(四) - RabbitMQ amp; Spring整合开发
  7. Typora+PicGo-Core(command line)+SMMS、github、gitee实现Typora图片上传到图床
  8. 图说Netty服务端启动过程
  9. JNDI学习总结(2)——JNDI数据源的配置
  10. 防止按钮连续重复点击
  11. Mybatis配置信息浅析 MyBatis简介(二)
  12. 创建模式--辛格尔顿
  13. linux万能密码,Linux pam 后门纪录root用户密码以及设置万能密码登录root
  14. C++多线程并发(五)---原子操作与无锁编程
  15. 管理学之父彼得·德鲁克:目标管理的基本思路、原则及分解方法
  16. 如何在html中播放.flv格式的视频【vue和普通html皆可用】
  17. Encountered a duplicated sql alias [ID] during auto-discovery of a native-sql query; nested exceptio
  18. 百度地图level对应距离(比例尺级别对应的多少米)
  19. element表格固定表头每列宽度,最右侧固定后,溢出出现滚动条内容和表头不能同时移动
  20. uniapp中使用uview组件u-icon 编辑到微信小程序样式问题

热门文章

  1. date、sleep和usleep命令
  2. PHP-cli 日志彩色玩法 echo \033[1;33m Hello World. \033[0m \n;
  3. 2016年第6本:简约至上--交互式设计四策略
  4. 3、PV、UIP、UV指的是什么
  5. 十六个 HTML,CSS,jQuery,WordPress等快速启动项目样板
  6. 几个.net开发中常用的工具下载
  7. 【转载】Asp.Net中基于Forms验证的角色验证授权
  8. dart初始化项目的分析
  9. 工业机器人调运角度_工业机器人如何精准选型,这九大参数告诉你!
  10. wkwebview 下移20像素_UITableView嵌套WKWebView的那些坑