Integer.parseInt返回错误:Integer类型中的方法parseInt(String)不适用于参数(R.string)

时间:2013-08-10 10:50:40

标签: java android list arraylist int

我必须构建一些我已构建的结构数组:

类(Item)按以下方式构建:(如下所示)

现在我的问题是我试图解析我从另一个地方(在这种情况下是一个列表)到int的一些字符串号。

但是我收到了这个错误:

  

Integer类型中的方法parseInt(String)不适用   参数(R.string)

这是代码片段: (它说错误在(“Integer.parseInt”):

markers.add(new item(Integer.parseInt(items.get(0).get(i)), items.get(1).get(i), items.get(2).get(i), items.get(3).get(i), Integer.parseInt(items.get(4).get(i)), Integer.parseInt(items.get(5).get(i))));

它只是很长但不复杂。

非常感谢!

编辑:

项目列表只是一个列表列表:

List<List<string>> items;

并且该类的结构是:

private int id;
private string title;
private string desc;
private string pub;
private int p;
private int n;

代码:

public List<List<String>> Download()
    {
        String data = null;
        //String res = "";
        try {
            client = new DefaultHttpClient();// Reference to the Internet
            httppost = new HttpPost(URL);
            HttpResponse response = client.execute(httppost);
            HttpEntity entity = response.getEntity();// get the content of the
                                                        // message
            InputStream webs = entity.getContent();

            BufferedReader in = new BufferedReader(new InputStreamReader(webs,"iso-8859-1"));

            StringBuffer sb = new StringBuffer("");

            String l = " ";
            // String nl=System.getProperty("line.separator");
            while ((l = in.readLine()) != null) {
                sb.append(l + "\n");
            }
            data = sb.toString();
            webs.close();

            List<List<String>> all= new ArrayList<List<String>>();
            all.add(new ArrayList<String>());
            all.add(new ArrayList<String>());
            all.add(new ArrayList<String>());
            all.add(new ArrayList<String>());
            all.add(new ArrayList<String>());
            all.add(new ArrayList<String>());
            all.add(new ArrayList<String>());

            try {

                JSONObject json = new JSONObject(data);
                JSONArray jArray = json.getJSONArray("item");
                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject json_data = jArray.getJSONObject(i);
                    //res += json_data.getString("title")+"\n";
                    all.get(0).add(json_data.getString("id"));
                }
                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject json_data = jArray.getJSONObject(i);
                    //res += json_data.getString("title")+"\n";
                    all.get(0).add(json_data.getString("title"));

                }
                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject json_data = jArray.getJSONObject(i);
                    //res += json_data.getString("title")+"\n";
                    all.get(0).add(json_data.getString("desc"));

                }
                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject json_data = jArray.getJSONObject(i);
                    //res += json_data.getString("title")+"\n";
                    all.get(0).add(json_data.getString("pub"));

                }
                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject json_data = jArray.getJSONObject(i);
                    //res += json_data.getString("title")+"\n";
                    all.get(0).add(json_data.getString("p"));

                }
                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject json_data = jArray.getJSONObject(i);
                    //res += json_data.getString("title")+"\n";
                    all.get(0).add(json_data.getString("n"));

                }

                return all;

            } catch (JSONException e) {

            }

            //return news;
        } catch (Exception e) {
            int x=3;
            // TODO: handle exception
        }

        return null;
    }

3 个答案:

答案 0 :(得分:1)

您使用的类型string显然不是java.lang.String,因此您无法将其作为参数提供给Integer.parseInt(java.lang.String)

答案 1 :(得分:1)

更改您的代码,使用String代替字符串。

 private int id;

private String title;

private String desc;

 private String pub;

private int p;

private int n;

还可以更改列表

List<List<String>> items;

答案 2 :(得分:1)

在不更改代码的情况下执行相同操作的其他方法是,您应该在parseInt()中调用getString(),以便getString()将返回java.lang.String,如下所示:

   getString(R.string.value);

这样做可以节省您替换string with String.

的大量工作

如果您打开R类,您将看到它只包含引用项目编译资源的数字。

选择是你的:)

干杯