ExpandableListView 数组列表不会保持我放置它们的顺序
ExpandableListView array lists won't stay in the order I put them
我正在使用 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;
HashMap
没有保持插入顺序。
您可以改用 LinkedHashMap
(扩展 HashMap
):
Map<String, List<String>> expandableListDetail = new LinkedHashMap<>();
我还使用了左侧的接口名称 Map
和菱形运算符 (<>
),如果你至少有 Java 7.
我正在使用 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;
HashMap
没有保持插入顺序。
您可以改用 LinkedHashMap
(扩展 HashMap
):
Map<String, List<String>> expandableListDetail = new LinkedHashMap<>();
我还使用了左侧的接口名称 Map
和菱形运算符 (<>
),如果你至少有 Java 7.