在Java中使用bundle传递哈希表

时间:2014-08-09 18:47:03

标签: java android

我有一个哈希表,这是我的代码

class Message
{
    public String message, sender;
    public Message (String msg, String from)
    {
        message = msg;
        sender = from;
    }
    public String toString () { return sender+": "+message; }
}

我用这段代码定义我的表

Hashtable<String, List<Message>> table = new Hashtable<String, List<Message>>();

如何使用bundle传递此表变量?示例我正在使用此代码传递字符串

    Bundle bundle = new Bundle();
    bundle.putString("name", "test");

现在我想通过捆绑包传递table.get("test")

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您是否尝试过Bundle#putSerializable()

如果您将implements Serializable添加到Message课程,它应该有效,因为Hashtable等可序列化。

当然,为了让你的Hashtable从捆绑中恢复,你必须投射它。

示例

Hashtable<String, List<Message>> originalTable = new Hashtable<String, List<Message>>();
// ... put some data into originalTable

// put originalTable into bundle    
Bundle bundle = new Bundle();
bundle.putSerializable("table", originalTable);

// extract table from bundle
Hashtable<String, List<Message>> extractedTable = (Hashtable<String, List<Message>>)bundle.getSerializable("table");

// Now, extractedTable should contain same data as originalTable