androidjavafxjavafxports

JavaFXPorts: Is this correct behavior for javafx.scene.control.ComboBox on Android device?


After selecting item in ComboBox, then this selected item is not displayed in ComboBox - only Android device, on desktop is it ok. Compare this two screenshots:


[On desktop when item "Option 2" is selected]

enter image description here

and

[On Android device when item "Option 2" is selected]

enter image description here

I am using JavaFXPorts 8.60.8.


Solution

  • Based on this question, and giving that on your bug report you mention you are using a Samsung device, there is a known issue in some Samsung devices where the touch event handling done in JavaFXPorts doesn't work as in the rest of Android devices.

    While this is fix on JavaFXPorts, you can try the following workaround:

    comboBox.setCellFactory(p -> new ListCell<String>() {
    
            private String item;
            {
                setOnMousePressed(e -> comboBox.getSelectionModel().select(item));
            }
    
            @Override
            protected void updateItem(String item, boolean empty) {
                super.updateItem(item, empty); 
                this.item = item;
                setText(item);
            }
    
        });
    

    Note I've used a mouse pressed event handler instead of a mouse clicked event handler. Since I can't reproduce it, in my case the mouse click is consumed by the list selection event (as this works properly), but probably in your case you can use either pressed or clicked events.