如何从Bundle中提取HashMap而不进行强制转换?

时间:2012-07-14 07:41:31

标签: android casting hashmap bundle

在两个线程之间进行通信,我使用Message传输数据。在我的例子中,一个HashMap。现在重建数据,我得到一个关于未经检查的类型转换的警告。这对我来说(作为java noob),我根本不应该那样做,对吧?但是什么是将HashMap从捆绑中取出的正确方法呢?

    Bundle dataBundle = msg.getData();
Serializable result = dataBundle.getSerializable("data");
HashMap<String,String> output = (HashMap<String, String>) result;

Thanx任何指针! 马库斯

1 个答案:

答案 0 :(得分:3)

所以用你的方法

getSerializable("data");

没有强制转换就无法执行此操作,因为getSerializable方法始终返回Serializable实例。

如果没有强制转换,您可以使用返回getParcelableExtra的{​​{1}},但我对您的应用程序上下文一无所知,因此我不确定是否可以使用。