Android开发点点滴滴——一些基础的但有用的知识(3)

1.long型数据的计算

之前在写到关于一个时间的小软件时,System.currentTimeMillis()返回的是从1970年1月1日到现在的毫秒数,是long型的,需要给这个加上一个数字。

比如:

long curTime = System.currentTimeMillis();// 获取当前时间
long deadLineTime  = curTime+(30*24*60*60*1000);
//long deadLineTime30day = curTime+(long)30*24*60*60*1000;

这样计算出来的结果是不对的,因为30*24*60*60*1000这样计算出来的结果默认是整型的常量,这个已经超出范围了,所以会将这个截取成整型。如需正确结果,需要在这个数前加个强制转换(long)

2.在list遍历的时候用remove

在list用foreach遍历的时候用list.remove()直接删除,那么会报错,弹出这个异常ConcurrentModificationException。那么如何在遍历的时候删除集合元素呢?

使用迭代器删除

Iterator<Object> iterator = list.iterator();
while(iterator .hasNext())
{
    Object obj = iterator.next();
    //做判断
    iterator.remove();
}</span>

3.intent传递list

网上有很多方法,这种亲测好用。

一般传递的不是int型或者string型的List,而是自定义的。那么就需要这样:

你要传的集合类:List<Object> list

intent.putExtra("lalala", (Serializable)list) ;

接受的时候用

list=(List<Object>) getIntent().getSerializableExtra("lalala");

不过你的Object需要实现Serializable接口
,基本上对于你的数据类不会做什么改变(反正每次我就只是 implements Serializable,其他都没变动^0^)

4.集合类排序

比如要给一个集合类List<YourObject> list 排序,那么需要让YourObject实现Comparable接口

然后实现compareTo方法。

比如按时间排序,YourObject里有个date成员,是String型的,存储的日期的字符串。那么只需要在compartTo方法中这样写

@Override
	public int compareTo(YourObject another)
	{
		return date.compareTo(another.date);

	}</span>

那么List<YourObject> list 就可以调用sort方法 排序了。

Android开发点点滴滴——一些基础的但有用的知识(3)

时间: 2024-11-09 02:22:44

Android开发点点滴滴——一些基础的但有用的知识(3)的相关文章

Android开发点点滴滴——一些基础的但有用的知识(2)

1.onItemLongClick和onItemClick事件截取 当需要同时获得一个listview的条目长按事件(onItemLongClick)和点击事件(onItemClick)时,只需要在onItemLongClick事件触发函数中,return true即可. 2.自定义CheckBox样式 在布局文件中,增加一个属性 android:button,话不多说,直接上代码 <CheckBox android:id="@+id/xxx" android:layout_wi

Android开发点点滴滴——一些基础的但实用的知识(2)

1.onItemLongClick和onItemClick事件截取 当须要同一时候获得一个listview的条目长按事件(onItemLongClick)和点击事件(onItemClick)时,仅仅须要在onItemLongClick事件触发函数中,return true就可以. 2.自己定义CheckBox样式 在布局文件里,添加一个属性 android:button,话不多说,直接上代码 <CheckBox android:id="@+id/xxx" android:layo

Android开发中XML基础小结

一个Android应用最基本的文件结构 1.res 存放资源文件 2.src 存放Java源文件 3.AndroidManifest.xml 这中间,Java负责逻辑的处理,而界面设计的布局信息由XML负责. 设计用户界面的方法通常有两种:过程性设计和声明性设计.Android应用开发同时支持上述两种.但事实上,谷歌建议尽可能用声明性的XML语言,因为它更简洁,更高效. 下面介绍XML. XML(EXtensible Markup Language),是一种类似于HTML的标记语言,它的标记不是

Android开发规范(编码+性能+UI)

现在为你带来Android开发规范,包括Android编码规范,Android性能优化以及Android UI优化. 一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能包含字母和_,字母全部大写,单词之间用_隔开 4.layout中的id命名 命名模式为:view缩写_模块名称_view的逻辑名称 view的缩写详情如下 LayoutView:lv

自学宝典:10个学习Android开发的网站推荐

1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Guides - CodePath CodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Github,已经获得了4000+个赞,对于Android初学这特别适合,而且浅显易懂. 3. Android tutorial - Tut

10个学习Android开发的网站推荐

1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Guides - CodePath CodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Github,已经获得了4000+个赞,对于Android初学这特别适合,而且浅显易懂. 3. Android tutorial - Tut

10个很棒的学习Android 开发的网站

1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Guides - CodePath CodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Github,已经获得了4000+个赞,对于Android初学这特别适合,而且浅显易懂. 3. Android tutorial - Tut

[转]10个学习Android开发的网站推荐

本文转自:http://blog.csdn.net/i_lovefish/article/details/43950893 1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Guides - CodePath CodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Github,已

10个很棒的学习Android 开发的网站(转)

看到江湖旅人 写的<10个很棒的学习iOS开发的网站 - 简书>,所以就忍不住写Android 啦,也希望对大家有帮助.我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给初学者一些建议,少走一些弯路. Android Developers 作为一个Android 开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. Android Developer Android Guides - CodePath CodePath 是国