android:getResources()。getIdentifier NotFound Exception

时间:2012-12-05 13:28:36

标签: android getresource getstring

我通过json获取我的数据。将它放在Hashmap中并将其列在ListView中。 这很好用!

现在我想要这样的事情:

String myArt=report_TJ_+e.getString("artID");

这在我的组合中不起作用。这是我的代码:

  try{
    //String text = getString(R.string.report_TJ);
    JSONArray  earthquakes = json.getJSONArray("uTraf");
    mylist.clear();
    String report_TJ_btn = null;
            for(int i=0;i<earthquakes.length();i++){                        
                HashMap<String, String> map = new HashMap<String, String>();    
                JSONObject e = earthquakes.getJSONObject(i);

                String imageString=report_TJ_btn+e.getString("artID");
                String myArt = getString(getResources().getIdentifier(imageString, "", getPackageName()));

                map.put("id",  String.valueOf(i));
                map.put("first", myArt + "Stau: " + e.getString("road") + ", " + e.getString("county"));
                map.put("second", e.getString("timestamp") + ", " + e.getString("suburb"));
                mylist.add(map);
            }       
  }

错误: E / AndroidRuntime(641):引起:android.content.res.Resources $ NotFoundException:字符串资源ID#0x0

3 个答案:

答案 0 :(得分:2)

您必须设置"string"而不是"strings"作为第二个参数。

String myArt = getString(getResources().getIdentifier(imageString, "string", getPackageName()));

答案 1 :(得分:1)

根据您的评论,您需要:

String myArt = getString(getResources().getIdentifier("report_TJ_btn " + e.getString("artID"), "strings", getPackageName()));

答案 2 :(得分:1)

使用字符串report_TJ_btn =“”;