频道栏目
首页 > 程序开发 > 移动开发 > Android教程 > Android基础教程 > 正文
第77章、再识Intent-创建选择器(从零开始学Android)
2016-02-02 11:55:33           
收藏   我要投稿
有不少初学Android的朋友问我,选择器怎么那么不好理解呢?

实际上一点也不难,在讲Intent-Chooser之前,我们先看一个Windows中的常见例子:我们选择一张图片,单击“右键”,弹出如下对话框。
\

Android中Intent-Chooser就是要实现上面两个效果:(1)如何产生右键打开方式效果;(2)如何把自己的Android App添加到列表中。

(1)如何产生右键打开方式效果:

[java] view plain copy

 

  1. Intent intent=new Intent();  
  2. intent.setAction(Intent.ACTION_GET_CONTENT);  
  3. intent.setType("image/*");  
  4. MainActivity.this.startActivity(intent.createChooser(intent, "选择图片查看APP"));  

核心代码就上面四行。
(2)如何把自己的Android App添加到列表中:

[html] view plain copy

 

  1. <intent-filter>  
  2.              <action android:name="android.intent.action.GET_CONTENT" />  
  3.              <category android:name="android.intent.category.DEFAULT" />  
  4.              <category android:name="android.intent.category.OPENABLE" />  
  5.              <data android:mimeType="image/jpeg" />  
  6.          </intent-filter>  


下面我们具体来学习一下如何实现之。

一、创建PictureViewer应用程序

本APP目的是为了实现把自己添加到列表中。

1、程序文件

打开“src/com.genwoxue.pictureviewer/MainActivity.java”文件。
然后输入以下代码:

[java] view plain copy

 

  1. package com.genwoxue.pictureviewer;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.widget.ImageView;  
  6.   
  7. public class MainActivity extends Activity {  
  8.   
  9.     @Override  
  10.      public void onCreate(Bundle savedInstanceState)     
  11.     {     
  12.         super.onCreate(savedInstanceState);  
  13.         ImageView ivPicture=new ImageView(this);  
  14.         ivPicture.setImageResource(R.drawable.ic_launcher);  
  15.         setContentView(ivPicture);  
  16.     }  
  17. }       

 

2、配置文件

打开“AndroidManifest.xml”文件。

然后输入以下代码:

[html] view plain copy

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="https://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.pictureviewer"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="10"  
  9.         android:targetSdkVersion="15" />  
  10.   
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/ic_launcher"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <activity  
  17.             android:name="com.genwoxue.pictureviewer.MainActivity"  
  18.             android:label="@string/app_name" >  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.GET_CONTENT" />  
  21.                 <category android:name="android.intent.category.DEFAULT" />  
  22.                 <category android:name="android.intent.category.OPENABLE" />  
  23.                 <data android:mimeType="image/jpeg" />  
  24.             </intent-filter>  
  25.               
  26.         </activity>  
  27.     </application>  
  28.   
  29. </manifest>  

 

注意:AndroidManifest.xml文件中以下内容决定把本APP加入到打开图像列表中。

<intent-filter>
                <action android:name="android.intent.action.GET_CONTENT" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.OPENABLE" />
                <data android:mimeType="image/jpeg" />
            </intent-filter>

二、创建IntentChooser应用程序

本APP目的是为了实现打开列表功能(即windows中的右键之打开方式)。

1、设计界面

1、布局文件

打开res/layout/activity_main.xml文件。
输入以下代码:

[html] view plain copy

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.     xmlns:android="https://schemas.android.com/apk/res/android"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <Button  
  9.         android:id="@+id/choose"  
  10.         android:layout_width="wrap_content"  
  11.         android:layout_height="wrap_content"  
  12.         android:text="选择查看图片工具" />  
  13.   
  14. </LinearLayout>  

 

2、程序文件

打开“src/com.genwoxue.intentchooser/MainActivity.java”文件。
然后输入以下代码:

[java] view plain copy

 

  1. package com.genwoxue.intentchooser;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.content.Intent;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class MainActivity extends Activity {  
  11.   
  12.     private Button btnChoose=null;  
  13.     @Override  
  14.      public void onCreate(Bundle savedInstanceState)     
  15.     {     
  16.         super.onCreate(savedInstanceState);                
  17.         setContentView(R.layout.activity_main);  
  18.         btnChoose=(Button)super.findViewById(R.id.choose);  
  19.         btnChoose.setOnClickListener(new OnClickListener(){  
  20.             public void onClick(View v)  
  21.             {     
  22.                 //系统会把所有查看Image类型的应用显示在列表中  
  23.                 Intent intent=new Intent();  
  24.                 intent.setAction(Intent.ACTION_GET_CONTENT);  
  25.                 intent.setType("image/*");  
  26.                 MainActivity.this.startActivity(intent.createChooser(intent, "选择图片查看APP"));  
  27.             }  
  28.         });  
  29.     }  
  30. }             
  31.       

 

3、配置文件

打开“AndroidManifest.xml”文件。

然后输入以下代码:

[html] view plain copy

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="https://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.intentchooser"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="10"  
  9.         android:targetSdkVersion="15" />  
  10.   
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/ic_launcher"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <activity  
  17.             android:name="com.genwoxue.intentchooser.MainActivity"  
  18.             android:label="@string/app_name" >  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.MAIN" />  
  21.                 <category android:name="android.intent.category.LAUNCHER" />  
  22.             </intent-filter>  
  23.         </activity>  
  24.     </application>  
  25.   
  26. </manifest>  

 

注意:用默认的AndroidManifest.xml即可,没有什么可说的。

 

三、运行结果

1、首先运行PictureViewer

虽然我们没有看到运行的界面,但已经运行了。

2、然后,运行Intentchooser

\ \

注意:效果实现了,但在PictureViewer中并没有真正实现浏览图片功能。

 

如果你想做一个类似的应用,譬如创建一个显示音乐列表的选择器,那么只需:

[java] view plain copy

 

  1. Intent intent = new Intent(Intent.ACTION_GET_CONTENT);  
  2. intent.setType("audio/*");  
  3. startActivity(Intent.createChooser(intent, "Select music"));  

当然,想显示视频或者别的列表,都是依次类推,举一反三就Ok了!

点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:第76章、再识Intent-调用ContentProviderl程序(从零开始学Android)
下一篇:第63章、XML文件-SAX操作(从零开始学Android)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站