将LinkedHashMap发送到intent

时间:2010-11-12 11:16:36

标签: android android-intent linkedhashmap

我想将LinkedHashMap发送给另一个Intent。但我不知道有什么额外的方法是允许的。

Bundle extras = getIntent().getExtras();
  LinkedHashMap<Integer, String[]> listItems = extras.get(LIST_TXT);

2 个答案:

答案 0 :(得分:2)

您无法可靠地发送LinkedHashMap作为Intent额外费用。当您使用putExtra()致电LinkedHashMap时,Android会看到该对象实现了Map接口,因此它将名称/值对序列化为{Bundle中的Intent 1}}。当你想在另一边提取它时,得到的是HashMap,而不是LinkedHashMap。不幸的是,您获得的这个HashMap已经失去了排序,这是您首先想要使用LinkedHashMap的原因。

唯一可行的方法是将LinkedHashMap转换为有序数组,将数组放入Intent,从接收端的Intent中提取数组,然后重新创建LinkedHashMap

有关更多详细信息,请参阅my answer to this question

答案 1 :(得分:0)

最好的方法是将其转换为相同类型的ArrayList
examble:

integer i;
initial begin
for (i=0; i<8; i=i+1) begin
        #5;
        {a,b,c} = i;
    end
end