ListView 中加入CheckBox/RadioButton选择状态保持、全选、反选实现

最近在一个项目中,需要在ListView的item中加入CheckBox,但是遇到的一个问题是上下滑动的时候如果有选择了的CheckBox,就会出现选择项错误的问题,下面将个人的解决方法总结如下;
先说思路:
在ListView的Adapter中,用一个Map保存每一项item的选择状态,在getView方法中,设置Map中保存的某一项的选择状态就实现了状态的保存;

Read More

如何解决dialog弹出时无法捕捉Activity的back事件

在一些情况下,我们需要捕捉back键事件,然后在捕捉到的事件里写入我们需要进行的处理,通常可以采用下面三种办法捕捉到back事件:

1)重写onKeyDown或者onKeyUp方法
2)重写onBackPressed方法
3)重写dispatchKeyEvent方法

这三种办法有什么区别在这里不进行阐述,有兴趣的朋友可以查阅相关资料。

Read More

Gson简要使用笔记

最近在做一个java web service项目,需要用到json,本人对java不是特别精通,于是开始搜索一些java平台的json类库。

发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson。

经过比较,gson和其他现有java json类库最大的不同是gson需要序列化的实体类,不需要使用annotation来标识需要序列化的字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。

Read More

Android 项目利用 Android Studio 和 Gradle 打包多版本APK

在项目开发过程中,经常会有需要打包不同版本的 APK 的需求。 比如 debug版,release版,dev版等等。 有时候不同的版本中使用到的不同的服务端api域名也不相同。 比如 debug_api.com,release_api.com,dev_api.com等等。

不同的版本对应了不同的 api 域名,还可能对应不同的 icon 等。

如果每次都在打包前修改我们都手动来修改,这样实在是不够方便。

但如果我们使用了 Android Studio 和 Gradle,这个麻烦就可以轻松省去。

Read More