如何将SortedSet作为Intent的额外传递?

时间:2010-06-28 22:18:45

标签: android

我有一个服务,它会生成SortedSet个对象。我需要将它传递给另一个将使用它的Intent。首先放入通知区域,然后当用户操作它时,它将需要触发活动。

因为它自己的SortedSet不是Parcelable也不是Serializable所以它不起作用。 SortedSet中的一个项目已经可以使用,并且使用得很好,但我需要整套。

如何传递SortedSet作为意图的额外内容?

1 个答案:

答案 0 :(得分:1)

我发现了:

// passes as serializable and as Array
intent.putExtra("results", result.toArray()); 

然后通过将数组重建为SortedSet来读出。

就我而言:

Serializable s = this.getIntent().getSerializableExtra("results");
Object[] o = (Object[]) s;
if (o != null) {
    resultSet = new TreeSet<RatedMessage>(new Comp());
    for (int i = 0; i < o.length; i++) {
        if (o[i] instanceof RatedMessage) {
            resultSet.add((RatedMessage) o[i]);
        }
    }
}

现在我可以进一步使用resultSet