我正在製作一個定義文件列表的瀏覽器。 我想壓縮空文件夾(如基於想法IDE usally可以做)構建文件夾緊湊樹的最佳方法是什麼?
本來我有一個文件列表(我從MediaStore得到它):
folder1/folder2/folder3/file1.mp3
folder1/folder2/folder3/file2.mp3
folder1/file3.mp3
而且我希望我的瀏覽器具有此結構:
folder1
-folder2/folder3
-file1.mp3
-file2.mp3
-file3.mp3
我是怎麼做的:
當F IRST的時間,我從MediaStore得到的文件,我在數據庫中創建一個表:
id name parent_id has_songs
0 folder1 -1 1
1 folder2 0 0
2 folder3 1 1
當每一個瀏覽器顯示的文件夾時它對數據庫的請求。 然後我開始檢查裏面的文件夾(每次檢查需要額外的數據庫請求):如果一個文件夾沒有歌曲,只有一個子文件夾,然後壓縮它們,然後檢查下一個和下一個。
這樣上面,如果我想看到「內部」的文件夾1它3個請求當地分貝例如:
1. Get list of all folders (Make a request to the db here)
2. Check folder2 has one subfolder and doesn't have songs (Make a request to the db here)
3. Check folder3 has one subfolder and doesn't have songs (Make a request to the db here)
1.那是最好的方式來實現這一點?
2.是否性能至關重要 在用戶點擊時向本地數據庫發出如此多的請求?
你可以看到這個庫:https:// github。com/bmelnychuk/AndroidTreeView –
@licon使用此庫不會改變任何內容,無論如何,我必須對數據庫執行相同的請求來擴充庫樹。 –