在传递到Android上的片段之前,是否可以将两个捆绑包合并为一个? 所以代码片段类似于:
Bundle b1 = SomeClass1.getSomeBundle();
Bundle b2 = SomeClass2.getDifferentBundle();
// How to do I pass these two bundles to a fragment?
fragment.setArgument(b1 + b2); // Illustrative only.
答案 0 :(得分:5)
是否可以在传递给a之前将两个捆绑组合成一个 Android上的片段?
是的,您可以使用Bundle.putAll(Bundle bundle)
来完成 创建捆绑包,分别传递两个捆绑包答案 1 :(得分:0)
Bundle
也可以包含Bundle
。您可以使用putBundle
Bundle b1 = SomeClass1.getSomeBundle();
Bundle b2 = SomeClass2.getDifferentBundle();
b1.putBundle("b2", b2);
fragment.setArgument(b1);
要检索它,您可以使用getBundle(String key)
Bundle b1 = getArguments();
Bundle b2 = b1.getBundle("b2");
答案 2 :(得分:0)
Bundle可以包含Bundle
Bundle mainBundle = new Bundle();
Bundle b1 = SomeClass1.getSomeBundle();
Bundle b2 = SomeClass2.getDifferentBundle();
mainBundle.putBundle("b1", b1);
mainBundle.putBundle("b2", b2);
fragment.setArgument(mainBundle);
要从捆绑包中获取捆绑包,请致电:
Bundle b1 = mainBundle.getBundle("b1");
Bundle b2 = mainBundle.getBundle("b2");