0
我創建了一個Gallery Activity
,其中包含位於SD卡上的音頻和視頻文件列表。我還有另一項活動,我想通過它使用Intent
從Gallery 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: 下面是項目onClickListener
的Gallery 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;
}
});
此代碼顯示我的應用程序在意向選擇器中,也打開然而,當我點擊任何文件時,它會打開選擇文件的文件。誰能幫我?
據推測,您在用戶點擊某個項目時編寫了'GalleryActivity'來打開該文件。如果這不是你想要的,請改變它。如果您不知道如何更改它,請顯示您在用戶單擊某個項目時執行的'GalleryActivity'中的代碼。 – CommonsWare
是的。那麼如何區分點擊打開文件並點擊選擇文件? –
增加了'Gallery Activity'的'onClickListener'。 @CommonsWare –