Android編程實(shí)現(xiàn)文件瀏覽功能的方法【類(lèi)似于FileDialog的功能】
本文實(shí)例講述了Android編程實(shí)現(xiàn)文件瀏覽功能的方法。分享給大家供大家參考,具體如下:
最近正在弄上傳文件,當(dāng)時(shí)想怎么能實(shí)現(xiàn)fileDialog的功能呢,打開(kāi)文件,瀏覽文件,然后選擇文件呢,查了好多資料,也看了不少論壇,都說(shuō)里面沒(méi)有這個(gè)功能,那真是奇怪了,里面沒(méi)有這個(gè)功能,當(dāng)然就需要自己動(dòng)手添加這個(gè)功能了。
首先說(shuō)一下這個(gè)文件瀏覽的簡(jiǎn)單實(shí)現(xiàn)原理:
首先選擇一個(gè)目錄做為根目錄,然后打開(kāi)此目錄,常用的就是使用File這個(gè)類(lèi)了,如下:
File file=new File(path);
然后可以通過(guò)獲取到此目錄下所有文件及文件夾的列表:
如下:
File[] files = file.listFiles();
然后再根據(jù)根據(jù)得到的文件,來(lái)判斷是文件夾還是文件,如果是文件夾,那么我們就將文件夾添加到列表中,如果是文件那么就把文件添加到列表中進(jìn)行顯示,如果需要顯示圖標(biāo)的話,那么就需要根據(jù)文件的后綴,設(shè)置不同的圖標(biāo)了。我是在ListView中進(jìn)行顯示的。
基本代碼如下:
for (File currentFile : files) { //判斷是一個(gè)文件夾還是一個(gè)文件 if (currentFile.isDirectory()) { currentIcon = getResources().getDrawable(R.drawable.folder); } else { //取得文件名 String fileName = currentFile.getName(); //根據(jù)文件名來(lái)判斷文件類(lèi)型,設(shè)置不同的圖標(biāo) 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); } } }
下面是根據(jù)后綴對(duì)文件的類(lèi)型進(jìn)行的判斷:
//通過(guò)文件名判斷是什么類(lèi)型的文件 private boolean checkEndsWithInStringArray(String checkItsEnd, String[] fileEndings) { for(String aEnd : fileEndings) { if(checkItsEnd.endsWith(aEnd)) return true; } return false; }
那么這樣我們就可以顯示出來(lái)帶圖標(biāo)的列表了,現(xiàn)在到了如果打開(kāi)子目錄的介紹了,首先對(duì)Listview添加點(diǎn)擊事件,在點(diǎn)擊之后,我們根據(jù)點(diǎn)擊的內(nèi)容進(jìn)行判斷,判斷是文件還是文件夾,如果是文件夾,那么再次調(diào)用顯示,并且將以前顯示的內(nèi)容清空即可,顯示出來(lái),如果是文件的話,那么這個(gè)根據(jù)我們的需要進(jìn)行操作:如打開(kāi)、選擇等等操作了。
上面所寫(xiě)的就是關(guān)于如何自己做一個(gè)文件瀏覽器,而且在這里還可以根據(jù)不同的使用地方,讓其顯示特定的文件。這個(gè)需要讀者在自己的使用中自己慢慢熟悉與摸索了!
這個(gè)Listview也是根據(jù)自己的需要進(jìn)行了布局,相信通過(guò)學(xué)習(xí)這一篇文章,你肯定會(huì)以File及ListView的使用有一個(gè)了解,也希望做出自己實(shí)用的文件瀏覽器!
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android文件操作技巧匯總》、《Android數(shù)據(jù)庫(kù)操作技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android編程開(kāi)發(fā)之SD卡操作方法匯總》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android學(xué)習(xí)筆記-保存文件(Saving Files)
- android開(kāi)發(fā)教程之獲取power_profile.xml文件的方法(android運(yùn)行時(shí)能耗值)
- Android文件選擇器ExFilePicker的使用方法
- Android第三方文件選擇器aFileChooser使用方法詳解
- Android開(kāi)發(fā)實(shí)現(xiàn)Files文件讀取解析功能示例
- Android中文件讀寫(xiě)(輸入流和輸出流)操作小結(jié)
- Android編程之文件的讀寫(xiě)實(shí)例詳解
- Android 讀寫(xiě)文件方法匯總
- Android編程之文件讀寫(xiě)操作與技巧總結(jié)【經(jīng)典收藏】
- Android持久化技術(shù)之文件的讀取與寫(xiě)入實(shí)例詳解
- Android編程中File文件常見(jiàn)存儲(chǔ)與讀取操作demo示例
相關(guān)文章
Android中使用的定時(shí)針(刷新頁(yè)面請(qǐng)求服務(wù)器)詳解
這篇文章主要介紹了Android中使用的定時(shí)針(刷新頁(yè)面請(qǐng)求服務(wù)器)詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12Android 判斷SIM卡是中國(guó)移動(dòng)\中國(guó)聯(lián)通\中國(guó)電信(移動(dòng)運(yùn)營(yíng)商)
本文給帶來(lái)兩種方法來(lái)判斷sim卡是屬于哪個(gè)運(yùn)營(yíng)商的,要實(shí)現(xiàn)此功能我們需要先獲取手機(jī)的imsi碼然后在判斷,對(duì)此功能感興趣的朋友一起通過(guò)本文學(xué)習(xí)吧2016-09-09Android獲取當(dāng)前手機(jī)網(wǎng)絡(luò)類(lèi)型(2g、3g、4g、wifi)以及手機(jī)型號(hào)、版本號(hào)代碼
這篇文章主要介紹了Android獲取當(dāng)前手機(jī)網(wǎng)絡(luò)類(lèi)型(2g、3g、4g、wifi)以及手機(jī)型號(hào)、版本號(hào)的相關(guān)資料,需要的朋友可以參考下2016-03-03Android實(shí)戰(zhàn)教程第一篇之最簡(jiǎn)單的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)教程第一篇,如何實(shí)現(xiàn)最簡(jiǎn)單的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android 二維碼 生成和識(shí)別二維碼 附源碼下載
這篇文章主要介紹了Android 生成和識(shí)別二維碼的方法,提供源碼下載,需要的朋友可以參考下。2016-06-06Android 實(shí)現(xiàn)無(wú)網(wǎng)絡(luò)頁(yè)面切換的示例代碼
本篇文章主要介紹了Android 實(shí)現(xiàn)無(wú)網(wǎng)絡(luò)頁(yè)面切換的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Android SdkVersion的區(qū)別及獲取版本信息方法
下面小編就為大家?guī)?lái)一篇Android SdkVersion的區(qū)別及獲取版本信息方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03Android編程實(shí)現(xiàn)號(hào)碼歸屬地查詢(xún)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)號(hào)碼歸屬地查詢(xún)的方法,涉及Android xml文件的發(fā)送及WebService的操作技巧,需要的朋友可以參考下2016-01-01如何在Android中實(shí)現(xiàn)左右滑動(dòng)的指引效果
本篇文章是對(duì)在Android中實(shí)現(xiàn)左右滑動(dòng)指引效果的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06