0

サードパーティのエクスプローラー (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); 
              }
        }
 });    

しかし今、私はそのポップアップメニューにもう1つのオプション(私のエクスプローラーなど)を入れたいと思っています。どうやってするか ?

前もって感謝します

4

1 に答える 1

0

アプリケーションのマニフェストでACTION_VIEWを使用してインテントをリッスンするには、アプリケーションを登録する必要があります。<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>
于 2013-09-23T15:56:52.773 に答える