在我的服务器中,显示此文字。
[{"name":"AAA", "age":"1"},
{"name":"BBB", "age":"2"},
{"name":"CCC", "age":"3"}]
我希望在手机上看到这个文字。
所以,我在android上使用asynctask
String strData = "";
.
.
.
@Override
protected void onPostExecute(String result) { //result = show server text
super.onPostExecute(result);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
strData += object.getString("name")
+ object.getInt("age");
adapter.add(strData);
}
} catch (JSONException e) {
e.printStackTrace();
}
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
}
这个结果我的手机
AAA 1
----------------
AAA 1
BBB 2
----------------
但我想要节目
AAA 1
-----------
BBB 2
此。
或许,for (int i = 0; i < jsonArray.length(); i++) {
这里有问题吗?
请给我建议 感谢。
答案 0 :(得分:1)
这很容易,请看:
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
strData += object.getString("name")
+ object.getInt("age");
adapter.add(strData);
strData = "";
}
答案 1 :(得分:0)
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
String strData = object.getString("name")
+ object.getInt("age");
adapter.add(strData);
}
答案 2 :(得分:0)
实际上使用GSON更好。无论如何,你的问题是str date被声明为global。所以请把String strData =&#34;&#34 ;;在执行后的Forloop里面或
> @Override protected void onPostExecute(String result) { //result = show server text
super.onPostExecute(result);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
strData="";
JSONObject object = jsonArray.getJSONObject(i);
strData += object.getString("name")
+ object.getInt("age");
adapter.add(strData);
}
} catch (JSONException e) {
e.printStackTrace();
}
ListView listView = (ListView)findViewById(R.id.listView);
listView.setAdapter(adapter); }