Android Intent 传递集合
Android Intent 传递集合也很简单,主要就是调用 putXxxArrayListExtra()
方法和 getXxxArrayListExtra()
方法
List< 基本数据类型 或 String>
写入集合
intent.putStringArrayListExtra(name, value) intent.putIntegerArrayListExtra(name, value)
读取集合
intent.getStringArrayListExtra(name) intent.getIntegerArrayListExtra(name)
List<Object>
Object 类首先要实现 Serializable 接口
然后将 List
强转成 Serializable
类型,然后传入(可用 Bundle 做媒介)
写入集合
putExtras(key, (Serializable)list)
读取集合
(List<Object>)getIntent().getSerializable(key)
Map<String, Object> 或更复杂的
外层套个 List,然后参考 List<Object>
//传递复杂些的参数 Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("key1", "value1"); map1.put("key2", "value2"); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); list.add(map1); Intent intent = new Intent(); intent.setClass(MainActivity.this,ComplexActivity.class); Bundle bundle = new Bundle(); //须定义一个list用于在budnle中传递需要传递的ArrayList<Object>,这个是必须要的 ArrayList bundlelist = new ArrayList(); bundlelist.add(list); bundle.putParcelableArrayList("list",bundlelist); intent.putExtras(bundle); startActivity(intent);