您的位置:首页 > 移动开发 > Android开发

Android之多个Activity之间的关系和Intent作用

2013-06-14 12:58 393 查看



一、多个Activity之间的关系

两个Activity,当从第一个Activity想要跳转到另一个Activity时,通常是一个Activity中点下按钮或其他操作,此时需要调用
第一个Activity中的startActivity(Intentintent),跳到哪个Activity及Activity具体要做什么都是由
Intentintent对象决定的。
布局Layout目录下的布局xml文件的文件名不能是大写的,注意。

二、Intent(像是一个请求,)的基本作用

一个Intent对象包含了一组信息:
Component name组件名称:intent会根据component name要启动哪一个组件(activity,service,contentProvider)
Action://ACTION_CALL、ACTION_EDIT。。。指定另外一个Activity要做些什么
Data:从一个Activity向另一个Activity传送怎样的数据
Category
Extras额外的:事先向一个activity的intent中存入的键值对
Flags
注意:Activity之间通过intent传递数据不一定要求是在同一个应用中
三、在一个Activity当中启动另一个Activity的方法

在第一个Activity当中添加监听setOnClickListener(),具体的监听方法implements OnClickListener,在此方法中为intent赋值后startActivity(intent)。
intent.setClass(从哪个对象,跳转到哪一个对象)
Acitivity02.this.startActivity(intent);
Activity02:当前类
public class Activity02 extends Activity {
private Button mybutton = null;

public void onCreate(Bundle savedInstanceState) {
... ...
mybutton.setOnClickListener (new MyButtonListener());
}
//内部类可以任意使用外部类的成员变量和函数
class MyButtonListener implements
View.OnClickListener {//要实现这个接口
public void onClick(View v) {
... ...
}
}

}

四、第二个Activity必须在Androidmainfest.xml中注册
编写一个Activity,必须在AndroidManifest.xml中进行注册:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... ...>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity01" android:label="@string/app_name">
... ... </activity>
<activity android:name=".OtherActivity" android:label="@string/other" /> <!-- 在res/values/strings.xml中增加other的定义 <string name="other">It's other activity!</string> -->
</application >
</manifest>

五、使用Intent在Activity之间传递数据的基本方法

两个Activity之间通过intent传值intent.setClass(Activity1.this, OtherActivity.class);
键值对的传递intent.putExtra("testIntent", "123");//传递额外的值

另一程序中
Intent intent = getIntent();
//得到从前一个Activity传递进来的Intent

String value = intent.getStringExtra("testIntent");
不在同一程序中的Activity也可传递(发送短信)
Uri uri = Uri.parse("smsto://0800000123");
Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body", "This");
startActivity(intent);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Intent Android