Android Smart Dict - 单词导入 - 文件浏览器

来源:互联网 发布:php json null 编辑:程序博客网 时间:2024/04/30 03:21

搞定了数据库之后,我要想办法把单词导入进来。怎么做呢?首先找到我要导入的文件,然后导入单词。

我做了一个简单的文件浏览器,可以去sdcard里面找我需要导入的文件。我需要自己定义一种词库的文件格式和后缀名,这个不重要,目前我只需要简单的定义就好,后面再做优化。后缀名就定为“.dict",那么首先需要搞定这个文件浏览器。当然我可以用Grid View来显示文件,就像home界面的桌面一样。用户点击文件夹后进入下一级文件目录,点击文件之后判断是否是".dict"结尾的文件,如果是就加载,否则不予处理,或者显示提示信息。

 

这里有一个重要的问题就是,我们在读取文件的时候不能在UI主线程里边做,这样有可能会阻塞进而导致讨厌的ANR被弹出来。我们可以自定义新的线程,当然也可以使用AsyncTask来做。我这里就用android系统的AsyncTask来做,定义一个task名叫LoadFileInfoTask,主要就是用来读取文件,取得文件信息,封装成一个定义好的FileInfo类,里面只有三个属性,文件名,路径和图片,如果是我们的词库文件就显示词库图片,依次类推。最后要注意一点,execute这个AsyncTask需要在UI线程里边来做,否则会抛异常。

 

具体代码如下:

 

 

有了这个task,我们就可以在每次点击文件夹以后运行这个task取得下一级路径的文件信息。

 

然后,定义一个grid view,用来显示文件信息。还有相应的Adapter,每次显示的时候更新数据。

 

代码如下:

 

 

好了,今天主要的两个东西就是:

LoadFileInfoTask:主要用来取得文件信息。

GridView:主要用来显示文件信息,获得用户的点击之后判断是否显示下一级目录,或者加载文件。

 

来看看运行效果:

 

原创粉丝点击