G1上并沒有隨系統附帶文件瀏覽軟件, 考慮到電子書,媒體播放器或其它一些軟件會使用到文件瀏覽,選擇文件或文件夾, 所以先做了這個文件管理工具并封裝一些參數供第三方程序調用,可以做為插件形式使用
把文件管理器封裝起來并使用intent機制設置瀏覽參數和調用
目前暫不支持多文件選擇, 將在下一版中發布
調用程序示例
1 Button button2 = (Button) findViewById(R.id.but2);
2 button2.setOnClickListener(testFileManager);
1 private OnClickListener testFileManager = new OnClickListener() {
2 public void onClick(View v) {
3 Intent intent = new Intent("net.uiiang.android.alkaid.FILEMANAGER");
4
5 //參數root_directory, 設置瀏覽的根目錄, 例如設置/sdcard則只允許程序瀏覽sd卡中的內容, 當程序回退上層文件夾到/sdcard后不再向上回退
6 //參數類型為字符串, 默認為"/"(根目錄)
7 intent.putExtra("root_directory", "/");
8
9 //參數exclude_directory, 設置不顯示的目錄, 例如設置"/data", "/dev", 則"/data", "/dev"這兩個目錄不會顯示給用戶
10 //參數類型為字符串數組, 默認不排除任何文件夾
11 intent.putExtra("exclude_directory",
12 new String[] { "/data", "/dev" });
13
14 //參數thrid_party_call, 當第三方程序調用時, 必須設置此參數為true, 否則下面幾個參數不起作用
15 //參數類型為boolean, 默認為false, 會顯示以下參數可設置的所有菜單(除 選擇菜單)
16 intent.putExtra("thrid_party_call", true);
17
18 // 參數directory_show_type, 目錄瀏覽方式
19 // 參數類型為 int, 默認為0
20 // 0 : 顯示文件和文件夾(默認)
21 // 1 : 只顯示文件
22 // 3 : 只顯示文件夾
23 intent.putExtra("directory_show_type", 0);
24
25 //參數use_menu_items, 設置顯示的預置菜單
26 //參數類型為:int數組
27 //菜單列表:
28 // 1 : 上下文菜單-打開 (文件夾)
29 // 2 : 上下文菜單-刪除
30 // 3 : 上下文菜單-詳細信息
31 // 4 : 上下文菜單-復制
32 // 5 : option菜單-粘貼
33 // 6 : option菜單-新建文件夾
34 // 99: 上下文菜單-選擇 , 若需要文件管理器返回一個選中的文件路徑, 則必須設置此菜單
35 // 當用戶點擊此菜單后, 文件管理器退出并返回給調用程序一個字符串數組, 數組中包含文件路徑信息
36 intent.putExtra("use_menu_items", new int[] { 99 });
37
38 // 參數show_info_in_list, 是否在瀏覽文件中顯示簡單的信息, 如文件夾中包含多少子文件夾和文件
39 // 默認為true
40 intent.putExtra("show_info_in_list", false);
41
42 // 參數show_file_extension, 是否顯示文件后綴名
43 // 默認為 true
44 intent.putExtra("show_file_extension", false);
45
46 // 參數use_simple_view, 是否使用簡單文件預覽
47 // 用戶單擊文件后可以簡單的預覽文件內容, 目前支持圖片和音樂文件
48 // 默認為 true
49 intent.putExtra("use_simple_view", false);
50
51 // 參數animation_show_list, 是否使用動態效果顯示文件列表, 目前只支持向下卷簾式的效果
52 // 默認為true
53 intent.putExtra("animation_show_list", true);
54
55 //參數mutiple_select, 是否支持多選, 為true可以一次性選擇多個文件或目錄
56 //默認為false
57 intent.putExtra("mutiple_select",false);
58
59 startActivityForResult(intent, SELECT_FILE);
60 }
61 };
通過startActivityForResult調用文件管理器, 并使用上下文菜單選擇文件或文件夾
點擊"選擇"后, 返回到調用程序
1 @Override
2 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
3 super.onActivityResult(requestCode, resultCode, data);
4 if (requestCode == SELECT_FILE) {
5 if (resultCode == RESULT_OK) {
6 // 參數名為selected_uri, 得到字符串數組中包含文件路徑
7 String[] selectArr = data.getExtras().getStringArray(
8 "selected_uri");
9 if (selectArr != null) {
10 String selectFile = "";
11 for (String string : selectArr) {
12 System.out.println("you select = "
13 + data.getExtras().getStringArray(
14 "selected_uri"));
15 }
16 }
17
18 }
19 }
20 }
posted on 2009-10-17 20:21
小強 閱讀(2669)
評論(2) 編輯 收藏 所屬分類:
google-android