如何在Bundle对象中保存ArrayList

时间:2010-12-23 14:53:44

标签: android

您好
我需要帮助找到存储方式

 ArrayList<HashMap<String,String>> 

在Bunble对象中,以便在方向发生时我可以在onRestoreInstanceState(Bundle状态)中检索它们。我可以找到在Bunble中存储简单数组的方法,但不能找到像这样的ArrayList。

1 个答案:

答案 0 :(得分:3)

首先你必须有一个静态持有者:

private static class Holder{
        private List<BitmapDrawable>imageList = new ArrayList<BitmapDrawable>();
    }

第二,当方向开始时,您必须在方向后返回要检索的对象:

@Override
    public Object onRetainNonConfigurationInstance() {
        return holder;
    }

最后,当你创建'new'活动时必须调用getLastNonConfigurationInstance()。 ANDroid会将您的持有人退回。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                holder = (Holder) getLastNonConfigurationInstance();
}

您可以在此处找到更详尽的解释:Faster Screen Orientation

欢呼声