Bundle.putLongArrayList()的替代方案

时间:2014-11-03 10:38:31

标签: android

我有一个ArrayList<Long>对象,我想保留我片段的方向更改。但是Bundle类没有putLongArrayList()方法。我确实看到putParcelableArrayList()putIntegerArrayList()putStringArrayList()

有没有理由为什么没有定义Long版本的方法?除了为Long对象创建包装器parcelable类然后使用putParcelableArrayList()之外,还有一个简单的解决方法吗?

1 个答案:

答案 0 :(得分:1)

我认为this是您应该使用的方法

enter image description here

但是,必须先将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])