简述activity数据回传的过程
简述activity数据回传的过程
在Android开发中,Activity是一个非常重要的组件,它负责处理用户与应用程序之间的交互。有时候我们需要从一个Activity向另一个Activity传递数据,这个过程叫做Activity之间的数据传递。但是有时候我们也需要从子Activity向父Activity返回数据,这个过程叫做Activity数据回传。
本文将详细介绍如何在Android应用程序中实现Activity数据回传。
一、什么是Activity数据回传
二、如何实现Activity数据回传
1. startActivityForResult()方法
2. setResult()方法
3. onActivityResult()方法
三、示例代码演示
1. ParentActivity.java文件代码
2. ChildActivity.java文件代码
四、总结
一、什么是Activity数据回传
在Android开发中,当我们需要从一个Activity向另一个Activity传递数据时,我们可以使用Intent对象来实现。但是有时候我们也需要从子Activity向父Activity返回数据,这个过程就叫做Activity数据回传。
例如,在父Activity中有一个按钮,点击按钮会跳转到子Activity,并且在子界面中输入一些信息后返回到父界面,并将输入的信息显示出来。这个过程就是典型的活动回调。
二、如何实现 Activity 数据回传
要实现 Activity 数据回传,需要使用 startActivityForResult() 方法启动子 Activity,并在子 Activity 中使用 setResult() 方法设置返回结果。然后,在父 Activity 中重写 onActivityResult() 方法来接收返回的数据。
1. startActivityForResult()方法
在父 Activity 中启动子 Activity 时,使用 startActivityForResult() 方法,而不是 startActivity() 方法。这个方法有两个参数:
第一个参数是 Intent 对象,用于指定要启动的子 Activity。
第二个参数是请求码(request code),用于标识这个请求。当子 Activity 返回结果时,我们可以根据这个请求码来判断返回的数据属于哪一个请求。
例如:
Intent intent = new Intent(this, ChildActivity.class);
startActivityForResult(intent, REQUEST_CODE);
2. setResult()方法
在子 Activity 中设置返回结果时,使用 setResult() 方法。这个方法有两个参数:
第一个参数是结果码(result code),用于标识返回的结果类型。通常情况下,我们使用 RESULT_OK 表示操作成功,使用 RESULT_CANCELED 表示操作取消。
第二个参数是 Intent 对象,用于携带返回的数据。
例如:
Intent intent = new Intent();
intent.putExtra("data", "Hello World!");
setResult(RESULT_OK, intent);
finish();
3. onActivityResult()方法
在父 Activity 中重写 onActivityResult() 方法来接收返回的数据。这个方法有三个参数:
requestCode:启动子 Activity 时传入的请求码。
resultCode:子 Activity 返回的结果码。
data:包含子 Activity 返回数据的 Intent 对象。
例如:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = StringExtra("data");
简述android概述 textView.setText(result);
}
}
三、示例代码演示
下面是一个简单的示例代码,演示如何在 Android 应用程序中实现 Activity 数据回传。
1. ParentActivity.java 文件代码
```
public class ParentActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 1;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
Create(savedInstanceState);
setContentView(R.layout.activity_parent);
Button button = findViewById(R.id.button);
textView = findViewById(_view);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论