android基础篇之Intent用法

Intent启动Activity的方式有显示启动(Explicit Intents),隐式启动(Implicit Intents)。

显示启动:

Intent intent=new Intent(MainActivity.this,OtherActivity.class);
startActivity(intent);

隐式启动:
首先在AndroidManifest.xml文件中OtherActivity部分添加intent-filter

<activity android:name=".OtherAcivity">
  <intent-filter>
     <action android:name="com.example.intentdemo.ACTION_START"/>
     <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>
</activity>

在MainActivity中:

Intent intent=new Intent("com.example.intentdemo.ACTION_START");
startActivity(intent);
//因为"android.intent.category.DEFAULT"是一种默认的category,在调用startActivity时会自动将这个category添加到Intent中

(三)、Intent拓展部分:

启动一个系统的浏览器

<activity android:name=".OtherAcivity">
  <intent-filter>
     <action android:name="android.intent.action.VIEW"/>
     <category android:name="android.intent.category.DEFAULT"/>
     <data android:scheme="http"
  </intent-filter>
</activity>

在MainActivity中:

Intent intent=new Intent("android.intent.action.VIEW");
intent.setData(Uri.parse("http://www.baitu.com"));
startActivity(intent);

上述的data标签用于精确的指定当前活动响应的数据类型。此标签可以配置以下内容:

1.android:scheme 指定数据的协议部分,比如http
2.android:host 指定数据的主机部分 ,比如上述的www.baitu.com
3.android:port 指定数据的端口部分,一般在主机之后
4.android:path 指定主机名和端口之后的部分
5.android:mimeType 用于指定处理的数据类型,允许使用通配符方式指定

(四)、Intent传递数据(对象)
intent.putExtra(key,value)可用于传递附加的数据,本文中讲述intent传递对象

使用Intent传递对象通常有两种实现方式:Serializable,Parcelable

Serializable方式:
1.在对象的类(比如Person类)中实现Serializable接口
2.

Intent intent=new Intent(MainActivity.this,OtherActivity.class);
intent.putExtra("Person",person);
startActivity(intent);

3.在OtherActivity中获取对象

Person person=(Person)getIntent().getSerializableExtra("Person");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrsongs的心情杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值