如何按列显示列表视图项目,来自Json

时间:2016-06-12 19:49:35

标签: java android json listview

我目前正在从在线MySQL数据库中检索数据并在应用程序中显示它,但我一直无法将其格式化为基本标准。

下面的代码片段显示了正在检索和循环的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();

我真正坚持的主要事实上只是获得一个基本布局,其中检索到的数据几乎像列一样整齐地分开。现在为此我明白需要自定义列表视图适配器,但是还需要数据模型吗?鉴于我从Json中提取数据,这仍然适用。我只是感到非常沮丧和坚持

非常感谢任何帮助

谢谢!

1 个答案:

答案 0 :(得分:0)

首选解决方案是以下

的组合
  1. 定制&#34;行&#34;替换android.R.layout.simple_list_item_1的布局,因为这样只能获得单个String项,而不是对齐列
  2. 一个简单的Java类(通常称为POJO),以及#34; bind&#34;这个JSON数据到那个视图
  3. extends ArrayAdapter<Foobar>其中Foobar是第2步中的类名称的适配器
  4. 现在,您可以只是在字符串数据中添加标签来模拟列,但是您无法保证数据会垂直对齐。