除了Component、Action、Category、Data属性,intent中还可以通过设置Extras属性来传递数据(注意是Extras不是Extra)。
设置Extra为Bundle类的对象,Bundle可以看作是跟Map类似的一种数据集合,使用键值对的形式来存储,里面可以存放如下类型的数据。
需要注意,整体是一个Bundle(Extras),Bundle里面还可以放Bundle(Extra)。
附上示例代码
public void enter(View view){
Intent intent=new Intent();
intent.setComponent(new ComponentName("com.itheima28.rp", "com.itheima28.rp.CalcActivity"));
Bundle bundle=new Bundle();
bundle.putString("name", "abc");
intent.putExtras(bundle);//这个是设置整体的Bundle
intent.putExtra("name", "abc2");//会覆盖整体Bundle中的String:name
Bundle innerBundle=new Bundle();
innerBundle.putString("name", "abc3");
intent.putExtra("innerBundle", innerBundle);//设置整体的内部的Bundle
startActivity(intent);
}
Intent intent = getIntent();
String name =intent.getStringExtra("name");//获取整体Bundle中的String:name
Bundle innerBundle = intent.getBundleExtra("innerBundle");
name=innerBundle.getString("name");