2016-06-12 70 views
0

我目前正在從在線MySQL數據庫中檢索數據並在應用程序中顯示它,但我一直有格式化它甚至基本標準的麻煩。如何從Json中按列顯示列表視圖項目

下面的代碼片斷顯示正在檢索和循環的JSON對象,然後應用於列表視圖適配器。

private void showJSON(String response){ 
    String CurrentUser=""; 
    String Benchpress=""; 
    String Squat=""; 
    String Deadlift=""; 

    try { 
     JSONObject jsonObject = new JSONObject(response); 
     JSONArray result = jsonObject.getJSONArray(ConfigLeaderboard.JSON_ARRAY); 
     JSONObject leaderboards; 

     for(int i = 0; i<result.length(); i++) { 
      leaderboards = result.getJSONObject(i); 
      CurrentUser = leaderboards.getString(ConfigLeaderboard.KEY_CURRENTUSER); 
      Benchpress = leaderboards.getString(ConfigLeaderboard.KEY_BENCHPRESS); 
      Squat = leaderboards.getString(ConfigLeaderboard.KEY_SQUAT); 
      Deadlift = leaderboards.getString(ConfigLeaderboard.KEY_DEADLIFT); 
      dataList.add(CurrentUser + "        " + Benchpress); 
      adapter.notifyDataSetChanged(); 

      Log.d("JSONArray length ",result.length() + ""); 
     } 

    } 

    catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    ListView lv = (ListView) findViewById(R.id.list); 
    lv.setAdapter(adapter); 
    ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList); 
} 
    @Override 
    public void onClick(View v) { 
    getLeaderboardData(); 

最主要的IM真的卡住實際上只是獲得基本的佈局,其中檢索到的數據被截然分開幾乎像列。現在對於這個我明白一個自定義列表視圖適配器將是必需的,但也會需要一個數據模型?鑑於即將從Json獲取數據,這仍然適用。我只是覺得這樣fustrated並堅持

任何幫助,將不勝感激

謝謝!

回答

0

的首選解決方案是以下

  1. 定製「行」佈局的組合來替代android.R.layout.simple_list_item_1因爲那樣只會讓你一個字符串項,未對齊列
  2. 一個簡單的Java類(通常稱爲POJO),以「結合」這個JSON數據到該視圖
  3. 一個適配器,其中extends ArrayAdapter<Foobar>Foobar類的來自步驟2
的名稱

現在,你可能只是添加標籤到您的字符串數據來模擬列,但是你不能保證數據將垂直對齊。

+0

感謝您的反饋。正如您突出顯示的那樣,添加選項卡並不會將數據垂直對齊,所以不幸的是,在這種情況下這不是選項。如果你有時間的話,你可以走路嗎?這將非常感激和幫助我的理解。謝謝 – uwotm8

+0

當然,請閱讀[本指南](https://github.com/codepath/android_guides/wiki/Using-an-ArrayAdapter-with-ListView),然後下拉到「使用自定義ArrayAdapter」,然後可選「從外部源構建模型」 –

相關問題