搞定了数据库之后,我要想办法把单词导入进来。怎么做呢?首先找到我要导入的文件,然后导入单词。
我做了一个简单的文件浏览器,可以去sdcard里面找我需要导入的文件。我需要自己定义一种词库的文件格式和后缀名,这个不重要,目前我只需要简单的定义就好,后面再做优化。后缀名就定为“.dict",那么首先需要搞定这个文件浏览器。当然我可以用Grid View来显示文件,就像home界面的桌面一样。用户点击文件夹后进入下一级文件目录,点击文件之后判断是否是".dict"结尾的文件,如果是就加载,否则不予处理,或者显示提示信息。
这里有一个重要的问题就是,我们在读取文件的时候不能在UI主线程里边做,这样有可能会阻塞进而导致讨厌的ANR被弹出来。我们可以自定义新的线程,当然也可以使用AsyncTask来做。我这里就用android系统的AsyncTask来做,定义一个task名叫LoadFileInfoTask,主要就是用来读取文件,取得文件信息,封装成一个定义好的FileInfo类,里面只有三个属性,文件名,路径和图片,如果是我们的词库文件就显示词库图片,依次类推。最后要注意一点,execute这个AsyncTask需要在UI线程里边来做,否则会抛异常。
具体代码如下:
有了这个task,我们就可以在每次点击文件夹以后运行这个task取得下一级路径的文件信息。
然后,定义一个grid view,用来显示文件信息。还有相应的Adapter,每次显示的时候更新数据。
代码如下:
好了,今天主要的两个东西就是:
LoadFileInfoTask:主要用来取得文件信息。
GridView:主要用来显示文件信息,获得用户的点击之后判断是否显示下一级目录,或者加载文件。
来看看运行效果:
这篇博客讲述了如何在Android应用中实现单词导入功能,包括创建一个简单的文件浏览器,用于在SD卡中查找词库文件。文件浏览器使用GridView显示文件,并通过AsyncTask在后台读取文件信息,避免ANR问题。当用户点击“.dict”后缀的文件时,应用会加载该词库。LoadFileInfoTask类用于获取文件信息,FileAdapter类则负责更新并显示GridView的内容。
16万+

被折叠的 条评论
为什么被折叠?



