欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Activity的生命周期,以及两个Activity之间数据的交换

程序员文章站 2022-06-23 09:32:03
创建一个SecondActivity,进行生命演示,以及数据交换。一: Activity的生命周期如果要进行两个页面之间的跳转,流程是二:两个Activity之间的数据交换传数据1.用putExtra的数据来传递在主页面上传递数据为:这里的BUTTON_TITLE是重构自动生成变量得来的为:public static final String BUTTON_TITLE = "button_title";接受数据为,在接受数据的页面,用getIntent来接受要改用一个按钮的信息...

创建一个SecondActivity,进行生命演示,以及数据交换。
一: Activity的生命周期
Activity的生命周期,以及两个Activity之间数据的交换
Activity的生命周期,以及两个Activity之间数据的交换
如果要进行两个页面之间的跳转,流程是
Activity的生命周期,以及两个Activity之间数据的交换
二:两个Activity之间的数据交换
传数据
1.用putExtra的数据来传递
在主页面上传递数据为:
Activity的生命周期,以及两个Activity之间数据的交换
这里的BUTTON_TITLE是重构自动生成变量得来的为:

public static final String BUTTON_TITLE = "button_title";

接受数据为,在接受数据的页面,用getIntent来接受
要改用一个按钮的信息,首先要给按钮命名改为

    final Button button = (Button) findViewById(R.id.buttonFinish);

在onCreate的方法中
Activity的生命周期,以及两个Activity之间数据的交换
便完成了用putExtra的数据传递
2.用bundle来传值
在传数据的同一个方法下写入

			Bundle bundle = new Bundle();
            bundle.putString(BUTTON_TITLE, getString(R.string.imooc_title));
            intent.putExtra(BUTTON_TITLE, bundle);
            startActivity(intent);

在接受页面的Oncreate的方法下接受

    if (getIntent() != null) {
        Bundle bundle = getIntent().getBundleExtra(MainActivity.BUTTON_TITLE);
        if (bundle != null) {
            String buttonTitle = bundle.getString(MainActivity.BUTTON_TITLE);
            button.setText(buttonTitle);
        }

便完成了用Bundle来传值
3.用序列化的方法来传值
创建一个user类要继承implements Serializable来完成

import java.io.Serializable;

public class User implements Serializable{
public String title="这是第三种方式默认标题";
}

在传递页面的方法中

            //intent.putExtra(BUTTON_TITLE, new User());
            //startActivity(intent);

在接受页面的方法中

        User user=(User) (getIntent().getSerializableExtra(MainActivity.BUTTON_TITLE));
        button.setText(user.title);

便完成了第三种方法的传递数据

回数据
将原来接收页面的数据传回之间的传递页面

1.在原来页面的方法上添加上

startActivityForResult(intent, 999);

2.在原来的接受页面上的按钮点击事件上添加上

        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("imooc", "imooc+慕课网");
            setResult(RESULT_OK, intent);
            finish();
        }

3.在原来的主页面上添加一个新的生命周期

	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 999 && resultCode == RESULT_OK) {
        //setTitle("前一个页面回来了");
        setTitle(data.getStringExtra("imooc"));
    }
}

如此便可完成页面的向回传递。

本文地址:https://blog.csdn.net/Derrick_itRose/article/details/107506340

相关标签: Activity