android - 在android中的 ListView 上列出mysql的结果

标签 android mysql listview

我正在研究本教程,它是关于使用 Json 和 php 脚本查询 mysql 数据库,一切都很好,但我正在努力列出您在 ListView 中看到的这些结果,而不是作为TextView 如下所示。这看起来很简单,但我无法通过用 ListView 替换 TextView 来使其工作。 图片:

这是教程(里面有代码): http://blog.erlem.fr/fr/applications-mobiles/android/27-android-blog/applications-mobiles/android/59-android-connexion-a-mysql-a-laide-de-php.html

最佳答案

以下所有内容均假设您已将 JSON 解析为数组。请参阅this for parsing help.

ListView 使用适配器来获取元素来填充列表行。您必须通过列表或数组(ArrayList,等等)将 JSON 结果提供给 SimpleListAdapter。

来自this page about listviews :

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/

相关文章:

device - Android:在 Android 设备选择器中,同一个设备多次出现

android - 如何使用 Gradle 运行所有 AndroidTest?

mysql - Tomcat、Hibernate、ElasticBeanStalk、RDS、MySql 数据库连接

java - 从 ListView 适配器中删除重复项

android - ScrollView 不环绕其内容

java - 在 Android Wear & Mobile 中读取本地 Json 数据文件

java - 安卓 : want to access to a textview in a viewholder in my mainactivity

php - 在第一行之后停止 MySQL 查询

php - Codeigniter 更新函数中的两个不同的表名

ios - 在 ListView 出现在 Xamarin Forms iOS 之前,如何将 ListView 滚动位置设置为底部?