当前位置: 移动技术网 > IT编程>开发语言>JavaScript > Activity的生命周期,以及两个Activity之间数据的交换

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

2020年07月23日  | 移动技术网IT编程  | 我要评论

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

public static final String BUTTON_TITLE = "button_title";

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

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

在onCreate的方法中
在这里插入图片描述
便完成了用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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网