一、Activity的创建
1、创建一个新项目
点击Flie--New--New Project
点击Empty Views Activity
点击Next
根据需要可修改项目名称,这里我重命名为CycActivity,然后点击Finish即可完成创建新项目。
2、SecondActivity的创建
点击java--->com.example.cycactivity,右键new--->Activity--->Empty Views Activity
命名为SecondActivity。
创建好如下图
二、Activity的跳转
1、MainActivity---->SecondActivity,事件驱动,点击事件
首先,在activity_main.xml中添加Button,直接拖动即可。
其次,在activity_second.xml中添加TextView,直接拖动即可。
然后,在MainActivity中修改代码如下(注意id.后缀要和activity_main.xml中button的id一样)
最后实现Activity的跳转(效果如下,点击跳转到Second页面即可跳转)
2、MainActivity---->SecondActivity,传参
首先,在MainActivity中定义你想要传递的数据,并创建一个Intent来启动SecondActivity。通过Intent的putExtra()
方法,你可以将数据附加到Intent上。在这我定义传递数据为“Hello from MainActivity!”(代码如下)
其次,在SecondActivity中在合适的位置(通常是onCreate()
或onStart()
方法中)获取启动它的Intent,并使用getIntent()
方法。然后,你可以通过Intent的getStringExtra()
(或其他相应的getExtra()
方法,取决于你传递的数据类型)方法来检索附加在Intent上的数据。(代码如下)
完成以上步骤就可以完成MainActivity---->SecondActivity跳转传参(运行后如下图,接收到MainActivity传来的参数)
3、MainActivity---->SecondActivity---->MainActivity,传参
首先,在MainActivity中修改代码使其执行以下主要操作:
- 初始化UI组件:
- 使用
setContentView(R.layout.activity_main);
设置MainActivity
的布局文件。 - 通过
findViewById(R.id.textView);
找到布局中ID为textView
的TextView
组件,并存储在成员变量textView
中。 - 通过
findViewById(R.id.startButton);
找到布局中ID为startButton
的Button
组件,并用于设置点击监听器。
- 使用
- 设置按钮的点击监听器:
- 为
startButton
设置一个点击监听器,当按钮被点击时执行以下操作:- 创建一个新的
Intent
对象intent
,指定要启动的Activity
为SecondActivity
。 - 使用
intent.putExtra("data_from_main", "Hello from MainActivity!");
向intent
中添加数据,键为"data_from_main"
,值为"Hello from MainActivity!"
。 - 调用
startActivityForResult(intent, REQUEST_CODE);
启动SecondActivity
,并请求结果。这里的REQUEST_CODE
是一个整型常量,用于在onActivityResult
回调中识别是哪个请求返回了结果。
- 创建一个新的
- 为
- 接收从
MainActivitySecond`Activity的
返回on的数据ActivityResult:方法 会被 调用 -。 当
-Second 在Activity``on通过ActivityResultsetResult()
方法设置结果并调用finish()
结束时,方法中,首先检查
requestCode是否匹配启动
SecondActivity时使用的
REQUEST_CODE,以及
resultCode是否为
RESULT_OK`(表示操作成功)。- 如果条件满足,并且返回的
Intent
(data
参数)不为null
,则通过data.getStringExtra("returned_data");
获取从SecondActivity
返回的数据。 - 最后,使用
textView.setText(returnedData);
将获取到的数据显示在TextView
上。
- 如果条件满足,并且返回的
这样,MainActivity
就能够启动SecondActivity
,并向其传递数据。同时,它还能够接收SecondActivity
处理完数据后返回的结果,并将结果显示在UI上。
其次,在SecondActivity中修改代码使其执行以下主要操作:
- 初始化UI组件:
- 使用
setContentView(R.layout.activity_second);
设置SecondActivity
的布局文件。 - 通过
findViewById(R.id.textView2);
找到布局中ID为textView2
的TextView
组件,并存储在局部变量textView
中。 - 通过
findViewById(R.id.returnButton);
找到布局中ID为returnButton
的Button
组件,并存储在局部变量returnButton
中。
- 使用
- 从Intent接收数据:
- 使用
getIntent()
获取启动此Activity
的Intent
。 - 通过
intent.getStringExtra("data_from_main");
从Intent
中提取键为"data_from_main"
的字符串数据,并存储在dataFromMain
变量中。 - 如果
dataFromMain
不为null
,则使用textView.setText(dataFromMain);
将提取的数据设置为TextView
的文本。
- 使用
- 设置返回按钮的点击监听器:
- 为
returnButton
设置一个点击监听器,当按钮被点击时执行以下操作:- 准备一个字符串
dataToReturn
,内容为"Hello from SecondActivity!"
,作为要返回给MainActivity
的数据。 - 创建一个新的
Intent
对象returnIntent
。 - 使用
returnIntent.putExtra("returned_data", dataToReturn);
将dataToReturn
添加到returnIntent
中,键为"returned_data"
。 - 使用
setResult(RESULT_OK, returnIntent);
设置结果码(RESULT_OK
表示操作成功)和包含返回数据的Intent
。 - 调用
finish();
结束SecondActivity
,并将结果返回给启动它的Activity
(在这个场景中是MainActivity
)。
- 准备一个字符串
- 为
这样,SecondActivity
就能够从启动它的Intent
中接收数据,并在UI中显示这些数据。同时,它还提供了一个按钮让用户能够触发返回到MainActivity
的操作,并携带一些数据回去。
最后,运行效果如下:
点击跳转到Second页面后如下图:
最后点击返回Main页面如下图:
标签:SecondActivity,跳转,MainActivity,点击,Intent,Activity,Android,data From: https://blog.csdn.net/m0_74174723/article/details/142371482