编译没错,运动有错:ava.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
我知道是类型转换的错,但是不知道怎么修改!map = new HashMap<String, Object>();
map.put("menuText", R.string.STR_SERVICE_LOCK);map = new HashMap<String, Object>();
map.put("menuText", "service lock");
这样就没有错!但这不是我想要的

解决方案 »

  1.   

    这个要在资源文件里修改下面的文件中
    res/values/strings.xml添加<string name="STR_SERVICE_LOCK">service lock</string>
      

  2.   

    楼主:你这是把 某个String(service lock)放进hashmap里吗??如果是的话,按照你的写法是放的某个String的资源id啊!!
    map = new HashMap<String, Object>();
    map.put("menuText", R.string.STR_SERVICE_LOCK); 
    你这样放进去的是service lock在String.xml中int型的id,存进去是int型,你取出来是int,要想在得到那个String(service lock) ,需要:getResources().getString(id),这个id是你放进去的id啊
      

  3.   

    我肯定有在res/values/strings.xml中加
    <string name="STR_SERVICE_LOCK">Service Lock</string>,并不是我没有加才报错
      

  4.   

    你是说,如果STR_SERVICE_LOCK在R.java中public static final int STR_SERVICE_LOCK=0x7f060079,就把它改成getResources().getString(0x7f060079)??
      

  5.   


    这个要在资源文件里修改
     
    下面的文件中
     res/values/strings.xml
     
    添加
     
    <string name="STR_SERVICE_LOCK">service lock</string>这样存:map = new HashMap<String, Object>();
     map.put("menuText", R.string.STR_SERVICE_LOCK); 这样取: int id = map.get("menuText");
            String str = getResources().getString(id);
      

  6.   

    好吧。我理解错了,应该是map.put("menuText", getResources().getString(R.string.STR_SERVICE_LOCK));
    谢谢!
      

  7.   

     好吧 简单的这么来啊
    map.put("menuText", getResources().getString(R.string.STR_SERVICE_LOCK));