我是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。
答案 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
字符串。