本文實例講述了Android程式實作檔案瀏覽功能的方法。分享給大家供大家參考,具體如下:
最近正在弄上傳文件,當時想怎麼能實現fileDialog的功能呢,打開文件,瀏覽文件,然後選擇文件呢,查了很多資料,也看了不少論壇,都說裡面沒有這個功能,那真是奇怪了,裡面沒有這個功能,當然就需要自己去加入這個功能了。
先說一下這個檔案瀏覽的簡單實作原理:
先選擇一個目錄做為根目錄,然後開啟此目錄,常用的就是使用File這個類別了,如下:
File file=new File(path);
然後可以透過取得到此目錄下所有文件及資料夾的列表:
如下:
File[] files = file.listFiles();
然後再根據根據得到的文件,來判斷是資料夾還是文件,如果是資料夾,那麼我們就將資料夾加入列表中,如果是文件那麼就把文件加到清單中進行顯示,如果需要顯示圖示的話,那麼就需要根據文件的後綴,設定不同的圖示了。我是在ListView中進行顯示的。
基本程式碼如下:
for (File currentFile : files) { //判断是一个文件夹还是一个文件 if (currentFile.isDirectory()) { currentIcon = getResources().getDrawable(R.drawable.folder); } else { //取得文件名 String fileName = currentFile.getName(); //根据文件名来判断文件类型,设置不同的图标 if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingImage))) { currentIcon = getResources().getDrawable(R.drawable.image); } else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingWebText))) { currentIcon = getResources().getDrawable(R.drawable.webtext); } else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingPackage))) { currentIcon = getResources().getDrawable(R.drawable.packed); } else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingAudio))) { currentIcon = getResources().getDrawable(R.drawable.audio); } else if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingVideo))) { currentIcon = getResources().getDrawable(R.drawable.video); } else { currentIcon = getResources().getDrawable(R.drawable.text); } } }
下面是根據後綴對文件的類型進行的判斷:
//通过文件名判断是什么类型的文件 private boolean checkEndsWithInStringArray(String checkItsEnd, String[] fileEndings) { for(String aEnd : fileEndings) { if(checkItsEnd.endsWith(aEnd)) return true; } return false; }
這樣我們就可以顯示出來了介紹了,首先對Listview添加點擊事件,在點擊之後,我們根據點擊的內容進行判斷,判斷是文件還是文件夾,如果是文件夾,那麼再次調用顯示,並且將以前顯示的內容清空即可,顯示出來,如果是文件的話,那麼這個就根據我們的需要進行操作:如開啟、選擇等等操作了。
上面所寫的就是關於如何自己做一個文件瀏覽器,而且在這裡還可以根據不同的使用地方,讓其顯示特定的文件。這個需要讀者在自己的使用上自己慢慢熟悉與摸索了!
這個Listview也是根據自己的需求進行了佈局,相信透過學習這篇文章,你肯定會以File及ListView的使用有一個了解,也希望做出自己實用的文件瀏覽器!
希望本文所述對大家Android程式設計有幫助。
更多Android程式實作檔案瀏覽功能的方法【類似FileDialog的功能】相關文章請關注PHP中文網!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

Dreamweaver CS6
視覺化網頁開發工具