2016-06-12 73 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”,然后可选“从外部源构建模型” –

相关问题