标签:android
显式的Intent实现从一个Activity跳转到另外一个Activity,并可以传送一些数据。用法如下:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(Intent);//利用Intent启动SecondActivity
此外还可以利用显式Intent在两个Activity之间传送一些数据,这里先简单的说明一下,稍后详细说明。利用显式Intent传送数据:
//FirstActivity.java
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data", data);//利用Intent穿送数据
startActivity(Intent);//利用Intent启动SecondActivity
//SecondActivity.java
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
显式Intent的使用方法是比较简单的,隐式Intent的使用要稍微难一些,不过隐式Intent可是有大用处的。先举几个最简单的例子吧:
他们都需要隐式的Intent
相比于显式Intent,隐式Intent则含蓄了许多,它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。
每一个活动(Activity)可以配置自己的action和category,方式如下:
<activity android:name=".SecondActivity" >
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当一个活动要启动另外一个活动的时候,只需要在Intent里边指定要启动的Activity的action和category就行了。方式如
Intent intent = new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);
//传送数据
String data = "Hello SecondActivity";
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("extra_data", data);
startActivity(intent);
//接收数据
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
Log.d("SecondActivity", data);
A活动了B活动,在B活动中编辑了一些数据。在按下返回键要销毁B活动的时候,B活动通过Intent将数据传回给启动它的A活动。详情见下图:
在A活动里边通过startActivity方法启动B活动,B活动处理完数据以后,当要返回到A活动时(可能是一个返回按钮)通过setResult方法将Intent传给A活动。在A活动里边通过onActivityResult方法接收B活动返回的Inten。这就是它的基本流程
本人android刚刚入门,看完郭神的《第一行代码》受益匪浅,将自己的笔记以博客的形式发在csdn,督促自己学习,加油!
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:android
原文地址:http://blog.csdn.net/u011918771/article/details/46848749