我正在研究本教程,它是关于使用 Json 和 php 脚本查询 mysql 数据库,一切都很好,但我正在努力列出您在 ListView 中看到的这些结果,而不是作为TextView 如下所示。这看起来很简单,但我无法通过用 ListView 替换 TextView 来使其工作。 图片:
最佳答案
以下所有内容均假设您已将 JSON 解析为数组。请参阅this for parsing help.
ListView 使用适配器来获取元素来填充列表行。您必须通过列表或数组(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");
}
这是一种非常懒惰的方法,而且可能是不好的做法,但你可以明白这个想法。
关于android - 在android中的 ListView 上列出mysql的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10181524/