我有一个哈希表,这是我的代码
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")
。
我该怎么做?
答案 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