在android中打开文本文件

时间:2013-09-23 07:54:46

标签: android

单击任何第三方资源管理器(Es文件资源管理器,Astro FM等)中的任何txt文件,它会显示一个弹出菜单,其中包含打开该文件的选项。我实现了如下,

   gdview.setOnItemClickListener(new OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int index, long arg3) 
        {
            final String options[] = {"Text", "Audio", "Video", "Image", "Other"};
            String selectedpath = filespath.get(index);
            File tmp = new File(selectedpath);
            if(tmp.isDirectory())
            {
                Intent intnt = new Intent(MainActivity.this, ChildAvtivity.class);
                intnt.putExtra(EXTRA_PATH, selectedpath);
                startActivity(intnt);
            }
            else
            {
                final Intent intent = new Intent();
                intent.setAction(android.content.Intent.ACTION_VIEW);
                final File file = new File(selectedpath);

                final MimeTypeMap mime = MimeTypeMap.getSingleton();
                final String ext=file.getName().substring(file.getName().indexOf(".")+1);
                final String type = mime.getMimeTypeFromExtension(ext);
                intent.setDataAndType(Uri.fromFile(file),type);
                 startActivity(intent); 
              }
        }
 });    

但是现在我想在那个popupmenu中再添一个选项(比如我的探险家)。怎么做?

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要在应用程序的清单中注册您的应用程序以侦听ACTION_VIEW的Intent。 您可以使用<data>中的<intent-filter>标记设置要监听的文件类型。

Allowing Other Apps to Start Your Activity中的开发人员文档详细介绍了这一点。

例如,您的清单可能如下所示:

<activity android:name="MyTextViewerActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="text/plain"/>
    </intent-filter>
</activity>