Я знайшов один трюк - помістити ваш setOnItemSelectedListeners в onWindowFocusChanged замість onCreate. Я не знайшов жодних поганих побічних ефектів, щоб зробити це таким чином. В основному, налаштуйте слухачів після того, як з'явиться вікно. Я не впевнений, як часто він працює на WindowFocusChanged, але досить просто створити собі змінну блокування, якщо ви виявите, що вона працює занадто часто.
Я думаю, що в Android може бути використана система обробки на основі повідомлень, і якщо ви вкладете все це в onCreate, ви можете зіткнутися з ситуаціями, коли спінер заповнюється після його залучення. Отже, ваш слухач вимкнеться після встановлення місця розташування елемента. Це, звичайно, освічена здогадка, але сміливо виправляйте мене з цього приводу.