首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >putExtra treeMap返回HashMap不能转换为TreeMap安卓

putExtra treeMap返回HashMap不能转换为TreeMap安卓
EN

Stack Overflow用户
提问于 2012-12-20 03:55:36
回答 3查看 3.3K关注 0票数 8

我需要你的帮助,我不明白发生了什么?

我试图在两个活动之间发送一个TreeMap,代码如下:

代码语言:javascript
复制
class One extends Activity{
 public void send(){
   Intent intent = new Intent(One.this, Two.class);
   TreeMap<String, String> map = new TreeMap<String, String>();
   map.put("1","something");
   intent.putExtra("map", map);
   startActivity(intent);
   finish();
 }
}

class Two extends Activity{
  public void get(){
  (TreeMap<String, String>) getIntent().getExtras().get("map");//Here is the problem
  }
}

这返回给我,HashMap不能强制转换为TreeMap。什么

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-20 04:30:10

作为@Jave建议的替代方案,如果您确实需要将数据结构作为TreeMap,那么只需使用适当的构造函数,该构造函数接受另一个map作为数据源。因此,在接收端(Two)执行如下操作:

代码语言:javascript
复制
public class Two extends Activity {
    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TreeMap<String, String> map = new TreeMap<String, String>((Map<String, String>) getIntent().getExtras().get("map"));
    }
}

但是,根据您的项目,您可能不必担心确切的Map实现。因此,您可以直接转换为Map接口:

代码语言:javascript
复制
public class Two extends Activity {
    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Map<String, String> map = (Map<String, String>) getIntent().getExtras().get("map");
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-12-20 04:05:41

听起来像是序列化成了一个HashMap,这就是你要得到的。我猜你只能用HashMap了。或者,您可以创建自己的帮助器类并实现Parcelable,然后按顺序序列化键/字符串。

票数 1
EN

Stack Overflow用户

发布于 2012-12-20 04:13:21

您可以创建一个新的TreeMap并使用putAll()-method,而不是将结果直接转换为TreeMap<String, String>

代码语言:javascript
复制
TreeMap<String, String> myMap = new TreeMap<String, String>;
HashMap<String, String> receivedMap = getIntent().getExtras().get("map");
myMap.putAll(receivedMap);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13960153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档