【问题标题】:Two-line ListView does not show content两行ListView不显示内容
【发布时间】: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


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多