2016-10-06 38 views
0

我創建了一個Gallery Activity,其中包含位於SD卡上的音頻和視頻文件列表。我還有另一項活動,我想通過它使用IntentGallery Activity中挑選文件。我已新增下列intent-filter體現:從音頻和視頻文件的自定義庫中挑選文件

<activity 
      android:name=".Activities.GalleryActivity" 
      android:icon="@drawable/gallery" 
      android:label="@string/gallery" 
      android:parentActivityName=".Activities.MainActivity"> 

      <intent-filter > 
       <action android:name="android.intent.action.PICK" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:scheme="file" /> 
      </intent-filter> 
      <intent-filter > 
       <action android:name="android.intent.action.GET_CONTENT" /> 
       <category android:name="android.intent.category.OPENABLE" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:mimeType="audio/*" /> 
       <data android:mimeType="video/*" /> 
      </intent-filter> 
     </activity> 

下面是我創建Intent挑文件:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("*/*"); 
startActivityForResult(intent, ATTACH_FILES); 

EDITS: 下面是項目onClickListenerGallery Activity

viewAdapter.withOnClickListener(new FastAdapter.OnClickListener<GalleryRowContent>() { 
      @Override 
      public boolean onClick(View v, IAdapter<GalleryRowContent> adapter, GalleryRowContent item, int position) { 

       if (adapter.getFastAdapter().getSelections().size() == 0) { 

        if (item.getTag().equals("audio")) { 
         Intent intent = new Intent(); 
         intent.setAction(android.content.Intent.ACTION_VIEW); 
         File file = new File(item.getFilePath()); 
         intent.setDataAndType(Uri.fromFile(file), "audio/*"); 
         startActivity(intent); 

        } else if (item.getTag().equals("video")) { 
         Intent intent = new Intent(); 
         intent.setAction(android.content.Intent.ACTION_VIEW); 
         File file = new File(item.getFilePath()); 
         intent.setDataAndType(Uri.fromFile(file), "video/*"); 
         startActivity(intent); 
        } 
       } 

       return false; 
      } 
     }); 

此代碼顯示我的應用程序在意向選擇器中,也打開然而,當我點擊任何文件時,它會打開選​​擇文件的文件。誰能幫我?

+0

據推測,您在用戶點擊某個項目時編寫了'GalleryActivity'來打開該文件。如果這不是你想要的,請改變它。如果您不知道如何更改它,請顯示您在用戶單擊某個項目時執行的'GalleryActivity'中的代碼。 – CommonsWare

+0

是的。那麼如何區分點擊打開文件並點擊選擇文件? –

+0

增加了'Gallery Activity'的'onClickListener'。 @CommonsWare –

回答

1

要返回由startActivityForResult()開始的活動的結果,請致電setResult(),提供包含「結果」的Intent。通常情況下,緊接着調用finish(),因此控制返回到名爲startActivityForResult()的活動,因此它可以使用結果。