概述
之前的博文也有介绍,查看—->用户界面开发基础
这里单独抽取出来,更加具体的记录一下,事实上主要是API的使用。
Intent传递简单数据
能够以直接通过调用Intent的putExtra()方法存入数据,然后在获得Intent后调用getXxxExtra获得 相应类型的数据。传递多个的话。能够使用Bundle对象作为容器,通过调用Bundle的putXxx先将数据 存储到Bundle中,然后调用Intent的putExtras()方法将Bundle存入Intent中,然后获得Intent以后, 调用getExtras()获得Bundle容器,然后调用其getXXX获取相应的数据。
Intent传递数组
写入数组:
bd.putStringArray("StringArray", new String[]{"xx","oo"});
//可把StringArray换成其它数据类型,比方int,float等等,具体查看API
读取数组:
String[] str = bd.getStringArray("StringArray")
Intent传递集合
List
写入集合:
intent.putStringArrayListExtra(name, value)
intent.putIntegerArrayListExtra(name, value)
读取集合:
intent.getStringArrayListExtra(name)
intent.getIntegerArrayListExtra(name)
List< Object>
将list强转成Serializable类型,然后传入(可用Bundle做媒介)
写入集合:
putExtras(key, (Serializable)list)
读取集合:
(List) getIntent().getSerializable(key)
PS:Object类须要实现Serializable接口
Map
//传递复杂些的參数
Map map1 = new HashMap();
map1.put("key1", "value1");
map1.put("key2", "value2");
List> list = new ArrayList>();
list.add(map1);
Intent intent = new Intent();
intent.setClass(MainActivity.this,ComplexActivity.class);
Bundle bundle = new Bundle();
//须定义一个list用于在budnle中传递须要传递的ArrayL