AsyncTask和Handler对比
1 ) AsyncTask实现的原理,和适用的优缺点
AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 继续阅读“android AsyncTask介绍 – Devin Zhang – 博客园”
代码剪辑,记录代码人生的点点滴滴!
AsyncTask和Handler对比
1 ) AsyncTask实现的原理,和适用的优缺点
AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 继续阅读“android AsyncTask介绍 – Devin Zhang – 博客园”
自2008年第一部Android手机发布至今,虽然在操作体验上一直生活在iOS阴影之下,但不可否认,Android是越来越强了,与iOS的差距越来越小,尤其是一向被诟病的流畅度,在Android5.0之后更是有了质的飞跃。如今的Android手机,在八核处理器4GB内存加持下,一样也可以做到如丝般的顺滑,然而…… 继续阅读“超能课堂(22):Android手机怎么会越用越卡? – 超能网”
今天在做项目的时候,遇到一个问题,记录下来。当给ListView加了一个HeaderView后(代码如下),我们发现,,%20android.view.View,%20int,%20long)” title=”onItemClick”>onItemClick方法里的position
参数的值不是我们所期望的,比如点击ListView的第一行,我们期望的position
是0,可是实际上却是1,也就是说,它是从Header而不是从第一行开始计数的。 继续阅读“当ListView有Header时,onItemClick里的position不正确”
String… params表示的是可变参数列表,也就是说,这样的方法能够接受的参数个数是可变的,但不论多少,必须都是String类型的。比如doInBackground(“param1″,”param2″,”param3”) ,或是doInBackground() 。 继续阅读“android AsyncTask 中的几个方法比如doInBackground 中后面几个参数中间的几个点是什么意思?_百度知道”
目前下拉刷新已经满大街都是,在自己的应用如果不使用这个模式的话,出门都不好意思和人家打招呼,该文章就是简单探讨下针对于 github 上的这个开源项目的使用心得。为什么是它?因为在 stackoverflow 上大家都说它不错,所以就试试看吧!该项目的位置 Android-PullToRefresh 遗憾的是目前已经停止维护,但是已经足够强大所以不维护就不维护吧! 继续阅读“Android-PullToRefresh 使用心得 – 宇宙神帝 – 博客频道 – CSDN.NET”
android 获取浏览器 User Agent 的代码 继续阅读“android 获取浏览器 User Agent 的代码”
PullToRefresh是一套实现非常好的下拉刷新库,它支持:
1.ListView
2.ExpandableListView
3.GridView
4.WebView
等多种常用的需要刷新的View类型,而且使用起来也十分方便。 继续阅读“使用PullToRefresh实现下拉刷新和上拉加载 – ueryueryuery的专栏 – 博客频道 – CSDN.NET”
前面写过一篇关于下拉刷新控件的博客下拉刷新控件终结者:PullToRefreshLayout,后来看到好多人还有上拉加载更多的需求,于是就在前面下拉刷新控件的基础上进行了改进,加了上拉加载的功能。不仅如此,我已经把它改成了对所有View都通用!可以随心所欲使用这两个功能~~
我做了一个大集合的demo,实现了ListView、GridView、ExpandableListView、ScrollView、WebView、ImageView、TextView的下拉刷新和上拉加载。后面会提供demo的下载地址。 继续阅读“Android下拉刷新上拉加载控件,对所有View通用! – Android移动开发技术文章_手机开发 – 红黑联盟”
无疑,在Android开发中,ListView是使用非常频繁的控件之一,ListView提供一个列表的容易,允许我们以列表的形式将数据展示到界面上,但是Google给我们提供的原生ListView的控件,虽然在功能上很强大,但是在用户体验和动态效果上,还是比较差劲的。为了改善用户体验,市面上纷纷出现了各种各样的自定义的ListView,他们功能强大,界面美观,使我们该需要学习的地方。其中,使用最频繁的功能无疑就是ListView的下拉刷新和上拉加载数据了,几乎在没一款内容型的App中都可以找到这种控件的身影,尤其是需要联网获取数据的模块,使用的就更为频繁了,so,我们很有必要了解下这种效果是怎么实现的。 继续阅读“Android自定义控件——ListView的下拉刷新与上拉加载 – 推酷”
先讲下这篇写啥东西,也就是这家伙(
)写的一个上拉下拉刷新的Demo,连接https://github.com/fengcunhan/Android-PullToRefresh东西弄下来之后,会看到library和sample 2个文件夹,至于library怎么用,先看看官网的资料http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject
注意:如果勾选了library,那么这个项目是不能运行的,会提示:android library projects cannot be launched。所以注意了。 继续阅读“Android-PullToRefresh(一) – 洛易 – 博客园”
导师安排我做一个小项目,其中涉及到利用Adapter作为ListView的适配器,为ListView提供数据。选中某一项后,要让这一项变成选中状态,也就是背景图片要换一下。下面我就用一个小例子来模拟。重点不在于实现,而是了解Adapter中notifyDataSetChanged()背后的运行机制。
我们先做一个小Demo(文中涉及的Demo在文章末尾),功能是选中某一项后,背景颜色会变红。代码非常简单,这里就不解释了。值得注意的是,当我们需要ListView进行刷新的时候,我们需要调用Adapter.notifyDataSetChanged()来让界面刷新。 继续阅读“从源代码的角度分析–在BaseAdapter调用notifyDataSetChanged()之后发生了什么 – 陈哈哈 – 博客园”
contains方法用于判断列表中是否包含指定元素。如果列表中包含指定元素,则返回true,否则返回false。 继续阅读“1.2.4 List.contains方法——判断列表中是否包含指定元素_Java Web程序开发参考手册_红黑联盟读书频道”
换成这种方法的话就能正确的查出元素,如果换成//行的写法而不用循环的话就总是return false;终于找到问题所在了,原来重载equals的时候误把传入参数写成myPair了,应该是Object,呵呵。难怪,写成myPair就不是重载equals了。 继续阅读“LinkedList.contains()为什么无法正确比较出一样的元素?-CSDN论坛-CSDN.NET-中国最大的IT技术社区”
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList优于LinkedList,因为ArrayList可以随机定位,而LinkedList要移动指针一步一步的移动到节点处。(参考数组与链表来思考)
3.对于新增和删除操作add和remove,LinedList比较占优势,只需要对指针进行修改即可,而ArrayList要移动数据来填补被删除的对象的空间。 继续阅读“java中ArrayList 、LinkList的区别分析-android100学习网”
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论。
通过本文你可以了解(1)List的五种遍历方式及各自性能 (2)foreach及Iterator的实现 (3)加深对ArrayList和LinkedList实现的了解。
阅读本文前希望你已经了解ArrayList顺序存储和LinkedList链式的结构,本文不对此进行介绍。 继续阅读“介绍ArrayList和LinkedList的五种遍历方式,各种的性能对比,根据ArrayList和LinkedList的实现分析结果,总结结论”
数据源不同而已
1. String[]: ArrayAdapter
2. List<Map<String,?>>: SimpleAdapter
3. 数据库Cursor: SimpleCursorAdapter 继续阅读“ArrayAdapter ,SimpleAdapter ,SimpleCursorAdapter 区别 – java – ITeye技术网站”
(1).得到HttpURLConnection对象,通过调用URL.openConnection()方法得到该对象
(2).设置请求头属性,比如数据类型,数据长度等等
(3).可选的操作 setDoOutput(true),默认为false无法向外写入数据!setDoInput(true),一般不用设置默认为true
(4).浏览器向服务器发送的数据,比如post提交form表单或者像服务器发送一个文件
(5).浏览器读取服务器发来的相应,包括servlet写进response的头数据(content-type及content-length等等),body数据
(6).调用HttpURLConnection的disconnect()方法, 即设置 http.keepAlive = false;释放资源 继续阅读“Android_HttpURLConnection_Get和Post请求 | 学步园”
之前介绍的 更简洁的方式修改Chrome的User Agent,轻松体验移动版网络这种简洁的方法好像只适用于Chrome, Chrome不只是浏览界面简洁,对应的细节功能也都设计的很简洁。但是如果想在Chrome之外的浏览器平台模拟移动设备,还是需要使用完整的User Agent。比如我有时会用电脑通过3G网络上网,在流量上就要尽量节省了,目前是使用的Opera开启Turbo模式,节省流量方面还不错。如果模拟成移动平台的话,应该能更节省流量。顺便试了下模拟不同移动平台上网的效果,这里收集几个手机浏览器的User Agent备用,以后使用可以直接拿来复制即可。 继续阅读“[转]手机浏览器的User-Agent汇总 – relax – 博客园”
我们可以通过userAgent来判断,比如检测某些关键字,例如:AppleWebKit*****Mobile或AppleWebKit,需要注意的是有些浏览器的userAgent中并不包含AppleWebKit关键字,可能会是Linux,UCBrowser等等。 继续阅读“通过userAgent判断手机浏览器类型 – 好饱的博客 – 程序员博客”
介绍Android中Http请求方式的选择、区别及几个常用框架对API的选择
1. 两种请求方式对比
Android Http请求API主要分两种:
第一种是Java的HttpURLConnection,默认带gzip压缩
第二种Apache的HttpClient,默认不带gzip压缩
两种方式请求connection都是keep alive,默认User-Agent不同。
关于两种方式发出去的请求头对比图如下: 继续阅读“Android HttpURLConnection及HttpClient选择”