Activity之间跳转与传值
在Android开发中,Activity之间的跳转和数据传递是非常常见的操作。本文将介绍如何通过Intent类来实现Activity之间的跳转,并通过Bundle类来进行数据传递。 一、Activi
在Android开发中,Activity之间的跳转和数据传递是非常常见的操作。本文将介绍如何通过Intent类来实现Activity之间的跳转,并通过Bundle类来进行数据传递。
一、Activity跳转
Activity之间的跳转可以通过Intent类来实现,最常见的跳转代码如下:
Intent intent new Intent(, ); startActivity(intent);
也可以使用以下代码:
Intent intent new Intent(); (, ); startActivity(intent);
二、数据传递
如果需要在跳转页面时传递数据,可以使用Intent的putExtra()方法。如果只需要传递少量数据,可以直接在启动Intent时添加额外的参数:
Intent intent new Intent();
(, );
intent.putExtra("Name", "ppy2790");
startActivity(intent);
如果需要传递大量数据,可以使用Bundle类来封装数据,然后将Bundle对象赋给Intent:
Intent intent new Intent(, );
Bundle bundle new Bundle();
bundle.putString("Name", "ppy2790");
bundle.putBoolean("IsMale", true);
intent.putExtras(bundle);
startActivity(intent);
三、获取传递的值
在接收数据的另一个Activity中,可以通过getIntent().getExtras()方法获取传递过来的Bundle对象,并从中获取数据:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView();
Bundle bundle ().getExtras();
String name ("Name");
boolean isMale ("IsMale");
}
也可以直接从Intent中获取数据:
String name ().getStringExtra("Name");
四、页面跳转后返回并保留数据
有时候,在页面跳转之后,需要返回到之前的页面,并保留用户之前输入的信息。实现这个效果需要以下几步:
- 从FirstActivity页面跳转到SecondActivity页面时,使用startActivityForResult()方法。
- 在FirstActivity页面中重写onActivityResult()方法,获取来自SecondActivity页面的数据。
- 在SecondActivity页面上加入返回按钮,点击按钮时设置返回结果并结束当前Activity。
// FirstActivity中重写onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
switch(requestCode){
case RESULT_OK:
// 取得来自SecondActivity页面的数据,并显示到画面
Bundle bundle ();
String name ("Name");
boolean isMale ("IsMale");
}
}
// SecondActivity中返回按钮点击事件
/*给上一个Activity返回结果*/
(RESULT_OK, intent);
/*结束本Activity*/
();