两行ListView不显示内容
Posted
技术标签:
【中文标题】两行ListView不显示内容【英文标题】:Two-line ListView does not show content 【发布时间】: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
块中。
【参考方案1】:
感谢迈克 M!我已将代码更改为以下内容:
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("disease_name", resultStrVar[0]);
listItemData.put("confidence", resultStrVar[1]);
listItems.add(listItemData);
else
listItemData = new HashMap<String, String>();
listItemData.put("disease_name", "No predictions found");
listItemData.put("confidence", "Kindly shot again");
listItems.add(listItemData);
SimpleAdapter adapter = new SimpleAdapter(Results.this, listItems,
android.R.layout.simple_list_item_2,
new String[] "disease_name", "confidence",
new int[] android.R.id.text1, android.R.id.text2 );
listView.setAdapter(adapter);
【讨论】:
以上是关于两行ListView不显示内容的主要内容,如果未能解决你的问题,请参考以下文章
android中ScrollView嵌套ListView或GridView显示位置问题
android listView嵌套gridview的使用心得