ExpandableListView 数组列表不会按我放置的顺序排列[重复]

Posted

技术标签:

【中文标题】ExpandableListView 数组列表不会按我放置的顺序排列[重复]【英文标题】:ExpandableListView array lists won't stay in the order I put them [duplicate] 【发布时间】:2017-03-14 23:58:09 【问题描述】:

我正在使用 ExpandableListView,我在数组列表中设置了一些列表。 我将它们设置为一定的顺序,即:

company, day of the week, posh vehicles, topgear vehicles

但无论我做什么,订单都会恢复到

posh vehicles, company, days of the week, topgear vehicles

谁能帮我弄清楚这里的问题是我用于 stringArray 的代码吗?

 public static HashMap<String, List<String>> getData() 

    HashMap<String, List<String>> expandableListDetail = new HashMap<String, List<String>>();

    List<String> listDataHeader = new ArrayList<String>();
    // Adding child data
    listDataHeader.add("Company");
    listDataHeader.add("Please pick a day");
    listDataHeader.add("Posh Vehicles");
    listDataHeader.add("TopGear Vehicles");

    List<String> CompanyName = new ArrayList<>();
    CompanyName.add("Posh limos");
    CompanyName.add("TopGear limos");

    List<String> daysOftheWeek = new ArrayList<>();
    daysOftheWeek.add("Monday");
    daysOftheWeek.add("Tuesday");
    daysOftheWeek.add("Wednesday");
    daysOftheWeek.add("Thursday");
    daysOftheWeek.add("Thursday");
    daysOftheWeek.add("Friday");
    daysOftheWeek.add("Saturday");
    daysOftheWeek.add("Sunday");

    List<String> poshvehicles = new ArrayList<>();
    poshvehicles.add("Posh H2 limo");
    poshvehicles.add("Iveco party bus");
    poshvehicles.add("Merc party bus ");
    poshvehicles.add("Party coach");

    List<String> topGearVehicles = new ArrayList<>();
    topGearVehicles.add("TopGear H2 limo");
    topGearVehicles.add("TopGear party bus");

    expandableListDetail.put(listDataHeader.get(0),CompanyName);
    expandableListDetail.put(listDataHeader.get(1),daysOftheWeek);
    expandableListDetail.put(listDataHeader.get(2),poshvehicles);
    expandableListDetail.put(listDataHeader.get(3),topGearVehicles);

    return expandableListDetail; 

【问题讨论】:

另一个提示:在你的逻辑中记住工作日的名字是没有意义的。相反,您应该使用 Java 日期/日历 API - 他们可以为您做到这一点。 感谢@GhostCat 将查看重复的问题 【参考方案1】:

HashMap 不保留插入顺序。

您可以改用LinkedHashMap(扩展HashMap):

Map<String, List<String>> expandableListDetail = new LinkedHashMap<>();

我还使用了左侧的接口名称 Map 和菱形运算符 (&lt;&gt;),如果您至少有 Java 7,则可以使用。

【讨论】:

我很想在回答那个明显的“重复”问题时投反对票;但至少不会像您那样详细说明使用菱形运算符;-)

以上是关于ExpandableListView 数组列表不会按我放置的顺序排列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android_ExpandableListView

具有多项选择的 ExpandableListView 将所选项目保存到数组中

如何在expandablelistview中为子项添加按钮?

更改 ExpandableListView 中的可扩展指示器

ExpandableListView使用-ScrollView嵌套ExpandableListView,列表显示不全

选择 expandableListView 中的第一组