在Activity中通过Intent传递数据
(1)通过putExtra()
系列方法向Intent
对象当中存储数据
(2)使用getXXXExtra
系列方法从Intent
对象当中取出数据,比如取整型数据就getIntExtra()
,字符串型就getStringExtra()
,并且有的一个参数,有的两个,比如int
的就两个:第一个参数是要接收的值,第二个参数是第一个参数不存在(传过来的Activity里没有这个值或者值不为int型,再或者其他原因导致取值失败)时使用的默认值
实例:将第一个Activity中的数据传入第二个Activity中
在第一个Activity的监听器里
Intent intent = new Intent();
intent.setClass(ActivityTestActivity.this, test2.class);
intent.putExtra("username", "abc");
intent.putExtra("number", 123);
startActivity(intent);
在第二个Activity
Intent intent = getIntent();
String name = intent.getStringExtra("username");
int number = intent.getIntExtra("number", 1); //接收整型值,如果接收失败则取值为1
System.out.println(name + ":" + number);
当然如果想把数据统计封装起来再传可以通过Bundle
,使用步骤
(1)实例化一个Bundle
类:Bundle data = new Bundle();
(2)往Bundle
里添加数据:
data.putString("username", str);
data.putString("number", str1);
(3)新建一个intent
对象,并将该bundle
加入这个intent
对象:
Intent intent = new Intent();
intent.setClass(ActivityTestActivity.this, test2.class);
intent.putExtras(data); //将Bundle传入
startActivity(intent);
(4)在接收端Activity里实例化Bundle并用getExtras()
方法用来接收,再用getString
来获取里面的数据:
Intent intent = getIntent();
Bundle b = intent.getExtras();
String name = b.getString("username");
String number = b.getString("number");
实例
源Activity中
Bundle data = new Bundle();
data.putString("username", str);
data.putString("number", str1);
Intent intent = new Intent();
intent.setClass(ActivityTestActivity.this, test2.class);
intent.putExtras(data);
startActivity(intent);
目标Activity中
Intent intent = getIntent();
Bundle b = intent.getExtras();
String name = b.getString("username");
String number = b.getString("number");