Android Intent 意图

Intent

Intent,意图对象大致包括7大属性:Action(动作)、Data(数据)、Category(类别)、Type(数据类型)、Component(组件)、Extra(扩展信息)、Flag(标志位)。

Component(组件)

用来启动Activity,指定Intent的目标组件名称,即要从哪个Activity跳转到哪个Activity。

构造方法传入Component
Intent intent = new Intent(this, SecondActivity.class);  
startActivity(intent);  
setClass方法传入Component
Intent intent = new Intent();    
intent.setClass(this, SecondActivity.class);  
//或者intent.setClassName(this, "com.example.app.SecondActivity");  
//或者intent.setClassName(this.getPackageName(),"com.example.app.SecondActivity");            
startActivity(intent);  

Extra(额外信息)

Intent可以携带的额外 key-value 数据。
可通过调用putExtra()方法设置数据,每一个 key对应一个 value数据。
也可以通过创建 Bundle对象来存储所有数据,然后通过调用putExtras()方法来设置数据。

putExtra()传值
// 发送
 Intent intent = new Intent(MainActivity.this,OtherActivity.class);
 intent.putExtra("name", "Nicole");
 intent.putExtra("age", 25);
 startActivity(intent);  

//接收
 Intent intent = getIntent();
 String name = intent.getStringExtra("name");
 int age = intent.getIntExtra("age",0);
创建Bundle传值
 // 发送
 Intent intent = new Intent(this,OtherActivity.class);
 Bundle bundle = new Bundle();
 bundle.putString("name", "Ben");
 bundle.putInt("age", 28);
 intent.putExtras(bundle); //将bundle传入intent中
 startActivity(intent);  
 
 //接收
 Intent intent = getIntent();
 Bundle bundle = intent.getExtras();
 String name = bundle.getString("name");
 int age = bundle.getInt("age");

Action(动作)

不明确指定启动哪个Activity,给Activity设置Action、Data、Category,让系统来筛选出合适的Activity。

<activity  
    android:name="com.example.app.SecondActivity">  
    <intent-filter>  
        <action android:name="mark"/>  
        <category android:name="android.intent.category.DEFAULT"/>  
    </intent-filter>  
</activity>  
Intent intent = new Intent();  
//  Intent intent = new Intent("mark");  构造方法直接传入action标签
intent.setAction("mark");  
startActivity(intent);  

参考1

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值