【发布时间】:2019-06-27 15:19:42
【问题描述】:
我的两行 ListView 目前有问题。两行 ListView 显示列表分隔符,但是其中没有数据或文本。我可能在哪里做错了?
如需了解更多信息,例如results.get(i) 将显示Tungro,18.92%。
ArrayList<HashMap<String, String>> listItems = new ArrayList<>();
HashMap<String, String> listItemData;
for (int i=0; i<results.size(); i++) {
if (results.size() != 0) {
listItemData = new HashMap<String, String>();
String resultStr = results.get(i).toString();
String[] resultStrVar = resultStr.split(",");
listItemData.put(resultStrVar[0], resultStrVar[1]);
listItems.add(listItemData);
} else {
listItemData = new HashMap<String, String>();
listItemData.put("No predictions found", "Kindly shot again");
listItems.add(listItemData);
}
}
SimpleAdapter adapter = new SimpleAdapter(Results.this, listItems,
android.R.layout.simple_list_item_2,
new String[] {"First Line", "Second Line"},
new int[] {android.R.id.text1, android.R.id.text2 });
listView.setAdapter(adapter);
下面是 ListView 的截图,你可以看到列表分隔符,但没有文本或数据:
我如何标记字符串或适配器有问题吗?非常感谢。
【问题讨论】:
-
您在
SimpleAdapter构造函数调用中作为第四个参数传递的String[]数组是您提供给SimpleAdapter的项目Map的键。也就是说,对于您给SimpleAdapter的每个Map项目,每个Map中必须有与该数组中的键相对应的值。您已经传递了"First Line"和"Second Line",它们与您在将值放入每个项目的Map时使用的任何键都不对应;目前,resultStrVar[0]在if块中,"No predictions found"在else块中。
标签: java android android-listview listadapter