Intent 详解

Intent 是同一个或不同的应用中的组件之间的消息传递的媒介,是一个将要执行动作的抽象描述,一般来说是作为参数来使用。 本课时主要介绍Intent的使用方法。

先介绍下如何使用Intetn打开Activity的方法:

第一种:

<span style="font-size:14px;">Intent intent = new Intent(MainActivity.this,Acty1.class);
startActivity(intent);</span>
第二种:

<span style="font-size:14px;">Intent intent = new Intent();
intent.setComponent(
                     //第一个参数:该Activity所在的包里,第二个参数:该Activity的具体路径名
    new ComponentName("com.example.intentdemo", "com.example.intentdemo.Acty1"));
</span><pre name="code" class="html"><span style="font-size:14px;">startActivity(intent);</span>

 
第三种: 

要跳转到那个Activity,在配置文件中配置该Activity的action.

<span style="font-size:14px;"> <activity android:name="Acty1">
            <intent-filter >
               //命名是有规范的:包名+intent.Activity名
                <action android:name="com.example.intentdemo.intent.action.Acty1"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
   </activity></span>

配置文件设定好之后,直接在代码就可以实现跳转了

<span style="font-size:14px;">Intent intent = new Intent("com.example.intentdemo.intent.action.Acty1");
</span><pre name="code" class="html"><span style="font-size:14px;"></span><pre name="code" class="html"><span style="font-size:14px;">startActivity(intent);</span>

 
 

使用Intent打开手机里指定文件夹的指定图片

先定义一个按钮,点击按钮时显示指定图片,默认使用Intent自带的预览窗口。

btnOpenImage = (Button) findViewById(R.id.btn2);
btnOpenImage.setOnClickListener(new OnClickListener() {
			
		@Override
		public void onClick(View v) {
			//从手机中指定的文件夹打开指定的一张图片
			File f = new File("/data/data/com.example.intentdemo/iamge_07.jpg");
			Intent intent = new Intent(Intent.ACTION_VIEW);//使用Intent自带的预览窗口
			intent.setDataAndType(Uri.fromFile(f), "image/*");//(指定路径,打开类型)
			startActivity(intent);
			
		}
});
这样就可以打开指定的图片显示在Intent的预览窗口上。也可以显示在自定义窗口上:

首先,先自定义一个Activity,让图片显示在指定Activity中ImageView上。

public class ImageViewer extends Activity {
	
	private ImageView iv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		iv = new ImageView(this);
		setContentView(iv);
<span style="white-space:pre">		</span>//ImageView通过Intent获取图片信息。
		iv.setImageURI(getIntent().getData());
	}
}
自定义好Activity之后,还需要配置下Activity的属性。

<activity android:name="ImageViewer">
            <intent-filter >
                <action android:name="android.intent.action.VIEW"/>//Intent<span style="font-family: Arial, Helvetica, sans-serif;">默认预览窗口</span>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="image/*"  android:scheme="file"/>//设置为image所有类型,获取本地信息
            </intent-filter>
</activity>

这样自定义的Activity就好了,当你点击的时候,弹出 默认预览窗口和自定义的窗口供您选择图片要放到那个窗口上。

接上来我们来做个更有趣的,点击按钮,会弹出拨打电话的界面,并把指定的号码显示出来,直接按拨号键就可以。

btn10086 = (Button) findViewById(R.id.btn3);
btn10086.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				Intent intent = new Intent(Intent.ACTION_VIEW); 
				intent.setData(Uri.parse("tel:10086"));
				startActivity(intent);
			}
		});

只需要设置Intent.setData();属性就可以了。

同样的道理,我们在来做一个,点击按钮,直接弹出浏览器打开指定的网页地址。

btnBaidu = (Button) findViewById(R.id.btn4);
btnBaidu.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com"));
				startActivity(intent);
				
			}
		});

谢谢大家的阅读,有问题欢迎留言,大家一起来学习。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值