国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編寫文件瀏覽器的實現方法

2020-02-21 17:29:42
字體:
來源:轉載
供稿:網友

我們在編寫程序的時候,會需要瀏覽一些文件,但應用本身并不是與文件管理相關的應用,可能只是一個功能,需要讓用戶選擇文件進行后續操作,那么Android編寫文件瀏覽器的實現方法大家了解嗎?一起來跟著武林技術頻道小編看看吧!

如:

import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;  import android.util.Log;  public class FileUtils {   /**    * 獲取當前目錄下的所有文件或文件夾    * @param path 路徑    * @return    */   public static List<Map<String,Object>> GetPathFilsList(String path) {     List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();     List<Map<String,Object>> filelist = new ArrayList<Map<String,Object>>();     try {       String[] Files = new File(path).list();       for(String file : Files){         Map<String, Object> map = new HashMap<String, Object>();         if(new File(path+file).isDirectory()){           map.put("isDirectory",2);           map.put("fileName", file);                      list.add(map);         }else {           map.put("isDirectory", 1);           map.put("fileName", file);                      filelist.add(map);         }                       }       list.addAll(filelist);       return list;     } catch (Exception e) {       // TODO: handle exception       e.printStackTrace();       return null;     }   } } 

這里會將文件和文件夾區分出來,便于顯示區分。

之后我們需要用到一個適配器,用于顯示這些數據的ListView

?

private class FileBrowserAdapter extends BaseAdapter{     private List<Map<String, Object>> fileList;     private Context context;      public FileBrowserAdapter(Context Context,         List<Map<String, Object>> fileList) {       this.fileList = fileList;       this.context = context;     }      @Override     public int getCount() {       return fileList == null ? 0 : fileList.size();     }      @Override     public Object getItem(int position) {       return fileList.get(position);     }      @Override     public long getItemId(int position) {       return position;     }      @SuppressLint("InflateParams")     @Override     public View getView(int position, View convertView, ViewGroup parent) {        LayoutInflater mInflater = LayoutInflater           .from(getApplicationContext());       View view = null;       view = mInflater.inflate(R.layout.file_list_item, null);       ImageView image = (ImageView) view           .findViewById(R.id.file_list_item_image);       if (Integer           .parseInt(fileList.get(position).get("isDirectory") + "") == 2)         image.setImageResource(R.drawable.folder);       else if (Integer.parseInt(fileList.get(position).get("isDirectory")           + "") == 1)         image.setImageResource(R.drawable.documents);       TextView textView = (TextView) view           .findViewById(R.id.file_list_item_testview);       textView.setTextColor(Color.BLACK);       textView.setText(fileList.get(position).get("fileName") + "");       return view;      }      } 

最后我們需要實現這些

dir = Environment.getExternalStorageDirectory()         .getAbsolutePath() + "/";     fileListView = (ListView) findViewById(R.id.file_listview);     listItemClickListener = new FileListItemClickListener(); //   //設置點擊事件     fileListView.setOnItemClickListener(listItemClickListener);     fileList = FileUtils.GetPathFilsList(dir);     if (new File(dir).getParent() != null) {       Map<String, Object> map = new HashMap<String, Object>();       map.put("isDirectory", 0);       map.put("fileName", new File(dir).getParent());       fileList.add(0, map);      }     FileBrowserAdapter phoneFileBrowserAdapter = new FileBrowserAdapter(         getApplicationContext(), fileList);     fileListView.setAdapter(phoneFileBrowserAdapter); 

效果圖:

Android編寫文件瀏覽器的實現方法大家學習的怎樣呢?我們要在有時間的時候充電學習,這樣我們在遇到這個問題的時候,才不至于手足無措。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 同江市| 安庆市| 称多县| 桂东县| 阜南县| 桐柏县| 兴业县| 弋阳县| 隆昌县| 兰西县| 巫溪县| 景德镇市| 保德县| 灵川县| 靖远县| 大余县| 南岸区| 铜梁县| 吉林市| 定结县| 台东市| 六盘水市| 云浮市| 南宫市| 陆河县| 鄂温| 阿瓦提县| 岳池县| 柞水县| 盘锦市| 中西区| 鹿泉市| 鄂托克旗| 绵竹市| 抚松县| 高清| 桃源县| 格尔木市| 兰西县| 章丘市| 灵宝市|