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

本文介绍了Android中多个Activity之间的关系,强调了Intent在它们之间跳转和数据传递的关键作用。通过设置Component name、Action、Data、Category和Extras等属性,Intent能指定启动的Activity并携带数据。在启动新Activity时,需要在OnClickListener中设置Intent并调用startActivity。同时,每个Activity在AndroidManifest.xml中必须注册。最后,展示了如何通过Intent在Activity间传递键值对数据和实现跨应用通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



一、多个Activity之间的关系

两个Activity,当从第一个Activity想要跳转到另一个Activity时,通常是一个Activity中点下按钮或其他操作,此时需要调用 第一个Activity中的startActivity(Intentintent),跳到哪个ActivityActivity具体要做什么都是由 Intentintent对象决定的。

布局Layout目录下的布局xml文件的文件名不能是大写的,注意。

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

一个Intent对象包含了一组信息:

Component name组件名称:intent会根据component name要启动哪一个组件(activity,service,contentProvider

Action//ACTION_CALLACTION_EDIT。。。指定另外一个Activity要做些什么

Data:从一个Activity向另一个Activity传送怎样的数据

Category

Extras额外的:事先向一个activityintent中存入的键值对

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>


五、使用IntentActivity之间传递数据的基本方法

两个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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值