如何从数据库传递两个变量以显示到android中的数组

时间:2016-05-01 21:13:00

标签: java android

我是Android编程的新手,我从数据库获取值,如下面的两个变量

[
  {
    "user": "varun",
    "message": "hello word, my first message "
  },
  {
    "user": "varun",
    "message": "hello word, my first message "
  },
  {
    "user": "rahul",
    "message": "hello world"
  },
  {
    "user": "rahul",
    "message": "world: its cool"
  },
  {
    "user": "rahul",
    "message": "awesom"
  },
  {
    "user": "rahul",
    "message": "ranom"
  },
  {
    "user": "rahul",
    "message": "randimagain"
  },

并且还要在我的ListView中显示它们,我使用数组添加它们并显示。

代码:

final String TAG = events.class.getSimpleName();
                Log.d(TAG, "showJSON: \n" + jsonArray);
                for (int i = 0; i < jsonArray.length(); i++) {
                    try {

                        JSONObject jsonObject = jsonArray.getJSONObject(i);

                        items.add(jsonObject.getString("user"));
                        items.add(jsonObject.getString("message"));


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

但是通过这种方式发生了什么,首先是创建用户名子视图,然后是我的消息子视图。有没有什么方法可以将第一个JSON数据显示到ListView的子视图中,如用户名,然后是消息。 我正在为第一个用户和消息寻找一个选项作为一个ListView。

2 个答案:

答案 0 :(得分:1)

目前你的items对象是一个数组,你应该创建一个包含2个字段的对象(Message):User(String)和Message(String)。

然后代替

items.add(jsonObject.getString("user"));
items.add(jsonObject.getString("message"));

使用消息数组(或列表):Message [] messages = new ...

messages[i].setUser(jsonObject.getString("user"));
messages[i].setMessage(jsonObject.getString("message"));

这将允许您使用getter获取每个对象和字段。

messages.[i].getUser();

答案 1 :(得分:0)

您可以将user(字符串)和message(字符串)作为单个String对象添加到items列表中:

String item = jsonObject.getString("user") + "\n" + jsonObject.getString("message") items.add(item);

您可以按照自己想要的方式格式化item字符串。