搞定了数据库之后,我要想办法把单词导入进来。怎么做呢?首先找到我要导入的文件,然后导入单词。
我做了一个简单的文件浏览器,可以去sdcard里面找我需要导入的文件。我需要自己定义一种词库的文件格式和后缀名,这个不重要,目前我只需要简单的定义就好,后面再做优化。后缀名就定为“.dict",那么首先需要搞定这个文件浏览器。当然我可以用Grid View来显示文件,就像home界面的桌面一样。用户点击文件夹后进入下一级文件目录,点击文件之后判断是否是".dict"结尾的文件,如果是就加载,否则不予处理,或者显示提示信息。
这里有一个重要的问题就是,我们在读取文件的时候不能在UI主线程里边做,这样有可能会阻塞进而导致讨厌的ANR被弹出来。我们可以自定义新的线程,当然也可以使用AsyncTask来做。我这里就用android系统的AsyncTask来做,定义一个task名叫LoadFileInfoTask,主要就是用来读取文件,取得文件信息,封装成一个定义好的FileInfo类,里面只有三个属性,文件名,路径和图片,如果是我们的词库文件就显示词库图片,依次类推。最后要注意一点,execute这个AsyncTask需要在UI线程里边来做,否则会抛异常。
具体代码如下: