标签:
1. 自定义越多 灵活性越高,封装越多 灵活性越差
联想(1)灵活性:大量封装的图形化编程Labview < 适当封装的Java < 接近底层的C
(2)ListView 中的Adapter 灵活性:ArrayAdapter < SimpleAdapter < BaseAdapter
ArrayAdapter 只能显示一行一行的文字(字符串)
SimpleAdapter 既可以显示图片又可以显示文字,它将xml中的图片控件和文字控件 关联上 数据集合,内部已经封装好了 setImageSre() 和 setText() 方法,
所以在只要简单显示出来的需求下使用很方便。但是(1)它不能使用ImageLoader库 去控制Image的显示,所以无法显示大量的SD卡,网络上等Uri指定的图片资源(会瞬间卡死退出) (2)只能绑定 item 的点击事件,不能单独绑定item里面 图片或文字的点击事件。
BaseAdapter 基础适配器,需要自己定义一个单独的类,继承BaseAdapter,然后在类中覆写 创建自己的缓存器ViewHolder,创建视图,实例化控件,绑定监听事件,绑定数据到视图控件,取得item,取得item总数 等方法。因此 自由度极高,可以调用库完成绑定数据到视图控件,可以绑定视图控件的监听事件。
现在更喜欢用RecyclerView.Adapter,
(1)独立了(拆开了)创建视图 和 绑定数据到视图控件方法,封装了 (免去了)setTag (),getTag() 方法,和LayoutInflater类,使用更加方便。
(2)可以设置RecyclerView的布局为水平/垂直/网格/瀑布流等模式,简直就是全能,以一敌百,完胜ListView,GridView,Gallery等视图类。
2.ViewPager的Fragment中的 onCreateView(), onResume()都不好使,如要刷新Fragment最好用setUserVisibleHint()
@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(isVisibleToUser){ Log.d(TAG + 3, "setUserVisibleHint: Fashion onResume"); //相当于Fragment的onResume }else { Log.d(TAG + 3, "setUserVisibleHint: Fashion onPause"); //onPause } }
其实作为ViewPager显示的所有Fragment一开始是全都被创建的(调用了onCreateView(),onResume()),并一直处于显示状态(Visible = true),
但是受到缓存的限制,有时候会重新创建(又调用一次onCreateView(),onResume()),指不定是哪一个被重新创建了,所以不一定是你点击的那个Tab对应的Fragment执行了他的onCreateView()和onResume()
因此不能通过这三种方式来刷新Fragment
3.Rss
Really Simple Syndication 真正简单聚合
By using the technology of RSS, we could supply learners with learning informationsyndication and subscription services.
通过运用RSS技术可以为学习者提供学习信息聚合与定制的服务。
4.Android Studio导入项目出现乱码
(1)代码中文注释乱码,点击右下角UTF-8选择GBK
(2)真机中文乱码,在build.gradle 文件里添加
compileOptions.encoding = "GBK"
标签:
原文地址:http://www.cnblogs.com/Chongger/p/5468227.html