【起航计划 021】2015 起航计划 Android APIDemo的魔鬼步伐 20 App->Intents createChooser

Intents 这个例子的代码非常简单:

    public void onGetMusic(View view) {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("audio/*");
        startActivity(Intent.createChooser(intent, "Select music"));
    }

    public void onGetImage(View view) {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("image/*");
        startActivity(Intent.createChooser(intent, "Select image"));
    }

    public void onGetStream(View view) {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("*/*");
        startActivity(Intent.createChooser(intent, "Select stream"));
    }

它使用了Intent.ACTION_GET_CONTENT 和 MIME 类型来查找支持audio/* 的所有Data Picker ,允许用户选择其中之一。

比如对于Email应用,允许用户选择某种数据文件作为附件。

方法createChooser 提供了创建一个ACTION_CHOOSER Intent的便捷方法。

下图是在模拟器上运行的结果,支持Audio/* MIME 的有两个:

时间: 2024-08-12 22:39:09

【起航计划 021】2015 起航计划 Android APIDemo的魔鬼步伐 20 App->Intents createChooser的相关文章

【起航计划 002】2015 起航计划 Android APIDemo的魔鬼步伐 01

本文链接:[起航计划 002]2015 起航计划 Android APIDemo的魔鬼步伐 01 参考链接:http://blog.csdn.net/column/details/mapdigitapidemos.html?&page=12

【起航计划 031】2015 起航计划 Android APIDemo的魔鬼步伐 30 App->Preferences->Advanced preferences 自定义preference OnPreferenceChangeListener

前篇文章Android ApiDemo示例解析(31):App->Preferences->Launching preferences 中用到了Advanced preferences 中定义的AdvancedPreferences. 本篇具体介绍AdvancedPreferences, 这个例子称为Advanced ,是因为它涉及到了自定义Preference, 并在一个工作线程中刷新某个Preference的值. Preference 为显示在PreferenceActivity (一般以

【起航计划 020】2015 起航计划 Android APIDemo的魔鬼步伐 19 App->Dialog Dialog样式

这个例子的主Activity定义在AlertDialogSamples.java 主要用来介绍类AlertDialog的用法,AlertDialog提供的功能是多样的: 显示消息给用户,并可提供一到三个按钮(OK, Cancel ,Yes ,No)用于选择或是显示警告. 显示一个列表以供用户选择,列表中可以是Radio Button  (单选),Check button (多选) 显示文本框来接受用户输入等. 创建AlertDialog一般是通过AlertDialog.Builder来构造: A

【起航计划 012】2015 起航计划 Android APIDemo的魔鬼步伐 11 App->Activity->Save & Restore State onSaveInstanceState onRestoreInstanceState

Save & Restore State与之前的例子Android ApiDemo示例解析(9):App->Activity->Persistent State 实现的UI类似,但功能和实现方法稍有不同. (9)是通过Shared Preferences 和 Activity 的onPause() ,和onResume()来保持UI中 EditText 的值. 本例是通过onSaveInstanceState(Bundle savedBundle) 来实现保持UI状态. 和onPaus

【起航计划 003】2015 起航计划 Android APIDemo的魔鬼步伐 02

01 API Demos ApiDemos 详细介绍了Android平台主要的 API,android 5.0主要包括下图几个大类,涵盖了数百api示例: 02 入口类 ApiDemos采用分类层次显示,ApiDemo是ApiDemos的入口类,继承自ListActivity,该类的主要功能是分类列出大类,进而更进一步显示示例. ListActivity可以看做为一个含有ListView的Activity,可以不用setContentView设置布局,除非你想定制自己的List布局,这样的话,你

【起航计划 007】2015 起航计划 Android APIDemo的魔鬼步伐 06 App->Activity->Forwarding Activity启动另外一个Activity finish()方法

Android应用可以包含多个Activity,某个Activity可以启动另外的Activity. 这些Activity采用栈结构来管理,新打开的Activity叠放在当前的Activity之上,当前的Activity停止运行. 当一个Activity停止运行时,Android系统保留其停止前的状态,当用户按下“Back”按键时,栈最上的Activity从栈顶退栈,之前的Activity移到栈顶,显示在屏幕上: 有些时候,当一个Activity启动新的Activity后,不希望把当前Activ

【起航计划 005】2015 起航计划 Android APIDemo的魔鬼步伐 04 App->Activity->Custom Dialog Dialog形式的Activity,Theme的使用,Shape的使用

App->Activity->Custom Dialog 例子使用Activity 来实现自定义对话框 类CustomDialogActivity本身无任何特别之处.关键的一点是其在AndroidManifest.xml中的定义: <activity android:name=".app.CustomDialogActivity" android:label="@string/activity_custom_dialog" android:them

【起航计划 006】2015 起航计划 Android APIDemo的魔鬼步伐 05 App-&gt;Activity-&gt;Custom Title 自定义标题栏

Android UI缺省的标题栏由android:label 定义,显示在屏幕左上角,Android允许Activity自定义标题栏,使用自定义Layout重新设置标题栏,比如实现Windows Mobile 风格的标题栏. App->Activity->Custom Title 重新将Activity标题栏定义为左右两个文本框,类CustomTitle,其Layout定义R.layout.custom_title_1如下,为一左一右两个文本框: <!-- Demonstrates ho

【起航计划 016】2015 起航计划 Android APIDemo的魔鬼步伐 15 App-&gt;Activity-&gt;Wallpaper 系统壁纸作为当前Activity的背景

Wallpaper介绍一个Activity如何通过Style把系统Wallpaper作为当前Activity的背景. 这是WallpaperActivity在AndroidManifest.xml中的定义: <activity android:name=".app.WallpaperActivity" android:label="@string/activity_wallpaper" android:theme="@style/Theme.Wall