【发布时间】:2013-12-07 18:48:34
【问题描述】:
所以我有一个我无法处理的小问题......检查代码并阅读Logcat,有什么想法吗?
代码:
for(int i = 0; i < jArray.length(); ++i){
JSONObject json_data = jArray.getJSONObject(i);
//
String paskaita = json_data.getString("paskaita");
String laikas = json_data.getString("laikas");
String savaite = json_data.getString("savaite");
String auditorija = json_data.getString("auditorija");
String destytojas = json_data.getString("destytojas");
String dalykas = json_data.getString("dalykas");
String tipas = json_data.getString("tipas");
//Just adding view
TextView pask = (TextView) Item.findViewById(R.id.paskaita);
pask.setText(paskaita);
TextView laik = (TextView) Item.findViewById(R.id.laikas);
laik.setText(laikas);
TextView sav = (TextView) Item.findViewById(R.id.savaite);
sav.setText(savaite);
TextView dest = (TextView) Item.findViewById(R.id.destytojas);
dest.setText(destytojas);
TextView aud = (TextView) Item.findViewById(R.id.auditorija);
aud.setText(auditorija);
TextView dal = (TextView) Item.findViewById(R.id.dalykas);
dal.setText(dalykas);
TextView tip = (TextView) Item.findViewById(R.id.tipas);
tip.setText(tipas);
ln.addView(Item);
}
Logcat 输出:
12-07 19:00:27.558: E/AndroidRuntime(280): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
【问题讨论】:
-
不要使用
getString,而是使用optString(name, fallback),看看这是否能解决您的问题。 -
为什么用 ++i 而不是 i++?
-
但是我的问题是 jArray 的大小,正如我上面所说,如果 jArray 是 [{...}] 它可以工作,但如果它是 [{...},{...},{ ...}] 它没有。
-
你能粘贴 LogCat 的输出吗?
-
@vandus
++i可以是faster inCtype languages,有些人就是喜欢这种风格。 Java 中for循环的差异为 0。只是风格问题。
标签: java android json view parent