Android开发之Intent

Android中的Intent是连接各种组件的桥梁,它可以启动一个Activity并且启动他的时候传递参数给此Activity。
Intent有显示意图和隐式意图之分,所谓显示意图,是指在创建意图的时候,显示的创建某一个Activity
的Intent 比如
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
隐式意图,指的是在配置文件中加入某一Activity的action,然后在创建某intent的时候就可以通过该配置来创建
比如给OtherActivity创建一个action
<activity android:name=".OtherActivity"  android:label="@string/app_name">
    <intent-filter>
          <action android:name="com.yuchao.intent" />
          <category android:name="android.intent.category.DEFAULT" />//这一行必须加
      </intent-filter>
  </activity>
然后在MainActivity中可以这样创建连接OtherActivity的intent
Intent intent = new Intent("com.yuchao.intent");
效果和上面的显示意图一样

Activity之间互相传递数据也是通过Intent来实现的
Bundle bundle = new Bundle();
bundle.putString("name", "yuchao");
bundle.putInt("age", 23);
intent.putExtras(bundle);
startActivity(intent);
Bundle是一个类似Map一样的数据结构,通过键值对来标识数据,这样intent在启动OtherActivity时就可以取出其中的数据
Bundle bundle= this.getIntent().getExtras();
String name = bundle.getString("name");
int age = bundle.getInt("age");

intent的启动方法有两种,一种是直接调用startActivity(Intent intent)
另外一种方法是startActivityForResult(Intent intent,int requestCode)
前一种方法创建的intent在调用OtherActivity之后若还想跳回MainActivity页面,必须再次使用一次startActivity,而后面一种可以一次性地完成这个任务,该方法有两个参数,一个就是Intent,另外一个是requestCode,用来标识是哪个Activity来启动OtherActivity的,显然,这里是MainActivity。当OtherActivity被关闭(调用finish())的时候,程序会自动跳到MainActivity上,这里就需要MainActivity重写一个方法onActivityResult(int requestCode, int resultCode, Intent data),requestCode就是以上所述MainActivity传给OtherActivity的,resultCode是OtherActivity通过setResult(999,intent)给MainActivity反馈的,用来标识是哪一个Activity给MainActivity反馈的,intent中包含了反馈回来的数据
有关Intent的简单知识讲解完毕!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值