我创建了一个Gallery Activity
,其中包含位于SD卡上的音频和视频文件列表。我有另一项活动,我希望通过该活动使用Gallery Activity
从Intent
中选择文件。我在清单中添加了以下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);
编辑:
以下是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;
}
});
此代码在意图选择器中显示我的应用程序并打开Gallery Activity
,但是当我单击任何文件时,它会打开选择它的文件。任何人都可以帮助我吗?
答案 0 :(得分:1)
要从startActivityForResult()
开始的活动返回结果,请致电setResult()
,提供包含“结果”的Intent
。通常,紧接着调用finish()
,因此控制权返回到调用startActivityForResult()
的活动,因此它可以使用结果。