Android浏览器地址栏中历史访问记录的自动提示实现(AutoCompleteTextView)
此文旨在能帮助有需要的Android新手实现一个小小的功能,代码质量不具有任何参考意义,文章最下面的格式也有点小问题,搞了一会没搞定,放弃了。
目前无论是PC上还是手机上,浏览器的地址栏都带有历史访问记录自动提示功能,例如之前访问过http://www.qq.com,那么当下次再次输入qq,或者www.q的时候(具体出发规则可定制),http://www.qq.com就会在地址栏下面以下拉窗口的形式自动给出提示,方便用户选择并完成地址的输入工作。
在Android中,通过sdk提供的AutoCompleteTextView我们可以完成类似的功能,当然这里布局限于浏览器的地址提示,任何历史记录都可以通过该控件来实现,下面将通过代码来说明具体的实现过程。
要实现历史记录的提示功能,首先要解决的问题就是历史记录的存储,Android中提供了几种存储方式,官方sdk文档中给出了详细的说明:http://developer.android.com/guide/topics/data/data-storage.html ,大概分析了一下,对于浏览器历史记录而言,SQLite应该是最合适的存储方式,Android原生浏览器也使用了SQLite的存储方式,因此本文也基于SQLite来保存历史记录。对于SQLite的介绍可以参考这篇文章:http://www.ibm.com/developerworks/cn/opensource/os-cn-sqlite/,下面就先来实现历史记录的存储部分。
Android 提供了 SQLiteOpenHelper 来创建数据库,我们只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库,并在onCreate()中创建需要用到的表,代码如下: