0
我正在研究本教程,它是關於通過使用Json和php腳本查詢mysql數據庫,並且一切都很好,但我正在努力列出這些結果如下所示,在ListView中查看,而不是TextView。這似乎很容易,但我不能通過用ListView替換TextView來實現它。 圖像:在Android的列表視圖中列出mysql的結果
我正在研究本教程,它是關於通過使用Json和php腳本查詢mysql數據庫,並且一切都很好,但我正在努力列出這些結果如下所示,在ListView中查看,而不是TextView。這似乎很容易,但我不能通過用ListView替換TextView來實現它。 圖像:在Android的列表視圖中列出mysql的結果
所有的下面假定您已經解析了出來JSON到一個數組。請參閱this for parsing help.
ListView使用適配器來抓取元素以填充列表行。您必須通過List或數組(ArrayList,您有什麼)將JSON結果提供給SimpleListAdapter。
SimpleAdapter nommes = new SimpleAdapter(
this,
list,
R.layout.main_item_two_line_row,
new String[] { "line1","line2" },
new int[] { R.id.text1, R.id.text2 });
(在你的情況,你可以顯示/使用一個線佈局,或在本例中,兩行的佈局就像隱藏ID /名稱)
然後應用適配器
listView.setAdapter(nommes);
編輯:
jObject = new JSONObject("<your JSON string from provider>");
// in my case:
res = jObject.getJSONObject("results");
**dataAdapter = new ArrayAdapter<String>(this, R.layout.item, R.id.itemName);**
try {
for (int r = 0; r < rslt.length(); r++){
JSONArray jA = rslt.getJSONArray(Integer.toString(r));
schoolLocString = jA.getString(0) +"|"+ jA.getString(1) +"[" + jA.optString(2);
**dataAdapter.add(schoolLocString);**
}
**myListView.setListAdapter(dataAdapter);**
} catch (JSONException e) {
Log.v(TAG, "Exception " + e);
} catch (NullPointerException e){
Log.v(TAG, "NPE, no rslt");
}
這是一個非常懶惰的方式來做到這一點,可能是不好的做法,但你可以得到的想法。
謝謝你,但仍然無法使其工作,反正你知道任何其他方式來查詢列表視圖SQL數據庫並顯示結果? – Common 2012-04-18 00:17:27
我正是這麼做的。我做了一個php webservice,它將json作爲一個字符串發送,然後將它們分離出來。如果即時通訊使用列表視圖,我將結果添加到一個ArrayList,然後將數組關閉到一個ArrayAdapter。今晚我不在工作站附近,但稍後會提供更詳細的示例。 – h4rpur 2012-04-19 02:08:27
感謝您的幫助。有用 – Common 2012-04-20 23:45:30