作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 json
文件中获取信息,并在自定义 ListView
中显示数据。现在,我有一个名为 authors
的 Array
。作者有多位的地方。但是,在 ListView 中我只能看到最后一个作者姓名或最后一个数组项。如何显示所有项目?这是我的代码
for (int index = 0; index < jsonArray.length(); index++)
{
HashMap<String, String> temp = new HashMap<String,String>();
JSONObject jsonObject = jsonArray.getJSONObject(index);
String topic = jsonObject.getString("topic");
String type = jsonObject.getString("type");
String title = jsonObject.getString("title");
String absData = jsonObject.getString("abstract");
JSONArray getAuthorsArray = new JSONArray(jsonObject.getString("authors"));
for(int a =0 ; a < getAuthorsArray.length(); a++){
JSONObject getJSonObj = (JSONObject)getAuthorsArray.get(a);
String authordName = getJSonObj.getString("name");
Log.e("Name", authordName);
temp.put(KEY_AUTHOR, authordName);
}
temp.put(KEY_TOPIC, topic);
temp.put(KEY_TYPE, type);
temp.put(KEY_TITLE, title);
temp.put(KEY_ABSTRACT,absData);
list.add(temp);
}
}
simpleAdapter = new SimpleAdapter(this, list, R.layout.abstract_items, from, new int[]{R.id.abTopic,R.id.abType,R.id.abTitle,R.id.SubTitle});
setListAdapter(simpleAdapter);
最佳答案
temp.put(KEY_AUTHOR, authordName);
这可能就是原因。您正在迭代除 HashMap
之外的所有作者将覆盖值并且仅保存最后一个值。
据我了解,您将收到带有 JSONObject 数组的 JSON 响应。每个 JSONObject 保存一些信息和相关作者的子 JSONArray。
最简单的方法可能只是构建 ArrayList<JSONObject>
并延伸BaseAdapter
实现您自己的适配器。这很容易。对于大集合数据搜索ViewHolder模式,进行优化。
关于java - 安卓 : HashMap is showing only last array item in a Listview field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17631834/
我是一名优秀的程序员,十分优秀!