Android开发 打开文件 选择文件对话框

本文介绍了如何在Android中创建一个文件选择对话框,包括回调接口定义、文件选择对话框的实现以及布局设计。通过这个对话框,用户可以选择指定后缀的文件,并能自定义文件类型的图标。
摘要由CSDN通过智能技术生成
因项目需要打开文件,因此做了一个打开文件的对话框,现在把这部分的代码共享出来了。

首先是一个回调接口,该接口在文件选择完毕的通知调用者进行如果何种操作。文件接口声明,如下:

[java]  view plain copy print ?
  1. // filename: CallbackBundle.java  
  2. package com.example.openfiledemo;  
  3.   
  4. import android.os.Bundle;  
  5. // 简单的Bundle参数回调接口  
  6. public interface CallbackBundle {  
  7.     abstract void callback(Bundle bundle);  
  8. }  

然后的打开文件对话框的一下封装:

[java]  view plain copy print ?
  1. // filename: OpenFileDialog.java  
  2. package com.example.openfiledemo;  
  3.   
  4. import java.io.File;  
  5. import java.util.ArrayList;  
  6. import java.util.HashMap;  
  7. import java.util.List;  
  8. import java.util.Map;  
  9.   
  10. import android.app.Activity;  
  11. import android.app.AlertDialog;  
  12. import android.app.Dialog;  
  13. import android.content.Context;  
  14. import android.os.Bundle;  
  15. import android.view.View;  
  16. import android.widget.AdapterView;  
  17. import android.widget.ListView;  
  18. import android.widget.SimpleAdapter;  
  19. import android.widget.Toast;  
  20. import android.widget.AdapterView.OnItemClickListener;  
  21.   
  22. public class OpenFileDialog {  
  23.     public static String tag = "OpenFileDialog";  
  24.     static final public String sRoot = "/";   
  25.     static final public String sParent = "..";  
  26.     static final public String sFolder = ".";  
  27.     static final public String sEmpty = "";  
  28.     static final private String sOnErrorMsg = "No rights to access!";  
  29.       
  30.     // 参数说明  
  31.     // context:上下文  
  32.     // dialogid:对话框ID  
  33.     // title:对话框标题  
  34.     // callback:一个传递Bundle参数的回调接口  
  35.     // suffix:需要选择的文件后缀,比如需要选择wav、mp3文件的时候设置为".wav;.mp3;",注意最后需要一个分号(;)  
  36.     // images:用来根据后缀显示的图标资源ID。  
  37.         //  根目录图标的索引为sRoot;  
  38.         //  父目录的索引为sParent;  
  39.         //  文件夹的索引为sFolder;  
  40.         //  默认图标的索引为sEmpty;  
  41.         //  其他的直接根据后缀进行索引,比如.wav文件图标的索引为"wav"  
  42.     public static Dialog createDialog(int id, Context context, String title, CallbackBundle callback, String suffix, Map<String, Integer> images){  
  43.         AlertDialog.Builder builder = new AlertDialog.Builder(context);  
  44.         builder.setView(new FileSelectView(context, id, callback, suffix, images));  
  45.         Dialog dialog = builder.create();  
  46.         //dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);  
  47.         dialog.setTitle(title);  
  48.         return dialog;  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值