0

私はこのチュートリアルに取り組んでいます。Json と php スクリプトを使用して mysql データベースにクエリを実行することです。すべて問題ありませんが、ここに表示されるこれらの結果を TextView としてではなく ListView にリストする作業を行っています。下記参照。それは簡単に思えますが、TextView を ListView に置き換えても機能しません。画像:

ここにチュートリアルがあります(コード内): http://blog.erlem.fr/fr/applications-mobiles/android/27-android-blog/applications-mobiles/android/59-android-connexion-a-mysql-a -laide-de-php.html

4

1 に答える 1

1

以下のすべては、すでに JSON を配列に解析していることを前提としています。解析のヘルプについては、これを参照してください。

ListViews はアダプターを使用して要素を取得し、リストの行を埋めます。リストまたは配列(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 } );

(あなたの場合、この例のように 1 行のレイアウトまたは 2 行のレイアウトを使用して、id/name を表示/非表示にすることができます)

次に、アダプターを適用します

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");
}

これは非常に怠惰な方法であり、おそらく悪い習慣ですが、アイデアを得ることができます。

于 2012-04-16T20:59:38.263 に答える