我必须构建一些我已构建的结构数组:
类(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;
}
答案 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类,您将看到它只包含引用项目编译资源的数字。
选择是你的:)
干杯