创建一个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
如对本文有疑问, 点击进行留言回复!!
react-native打包android的apk报错Duplicate resources
js 图片压缩 尺寸不变 压缩质量 input type=file 文件压缩
网友评论