我有一个ArrayList<Long>
对象,我想保留我片段的方向更改。但是Bundle
类没有putLongArrayList()
方法。我确实看到putParcelableArrayList()
,putIntegerArrayList()
和putStringArrayList()
。
有没有理由为什么没有定义Long
版本的方法?除了为Long
对象创建包装器parcelable类然后使用putParcelableArrayList()
之外,还有一个简单的解决方法吗?
答案 0 :(得分:1)
我认为this是您应该使用的方法
但是,必须先将ArrayList转换为数组,然后才能将它放入Bundle中。
当您从Bundle获取LongArray时,您可以将其转换回ArrayList,以便您可以再次对其执行类似操作的列表。
放入捆绑
long[] array = new long[yourArrayList.size()];
for(int i=0;i<yourArrayList.size();i++){
array[i] = yourArrayList.get(i);
}
Bundle b = new Bundle();
b.putLongArray("longs", array);
从Bundle
获取long[] array = b.getLongArray("longs");
for(int i=0; i<array.length;i++) arrayList.add(array[i])