I’m trying to use the controlP5 dropdown list:
dropdown = cp5.addScrollableList("Filter")
.setPosition(10, 55)
.setSize(200, 100)
.setBarHeight(20)
.setItemHeight(20)
.addItems(l)
.setOpen(false)
// .setType(ScrollableList.LIST) // currently supported DROPDOWN and LIST
;
But when I try to access an element like so
dropdownActive = dropdown.getItem(1);
I get the error message Type mismatch, "java.util.Map<java.lang.String,java.lang.Object>" does not match with "int"
How can I access the active dropdown value?
.getItem()
looks like it returns a Map object. See https://docs.oracle.com/javase/8/docs/api/java/util/Map.html for more info.
So to fix the bug you would put:
Map<String, Object> element = dropdown.getItem(1);
But based on what you said I don’t think that’s what you’re looking for. To get the index of the element that was clicked most recently you would use .getValue()
(which for some unknown reason returns a float). So I think it would look like:
int active = int(dropdown.getValue()));
To get the name of the item that was clicked last you could use:
String active = dropdown.getItem(int(dropdown.getValue())).get("name");
println(active);
1 Like
Both of these solutions are really helpful, thanks!