After trying some things i got something very simple that works following the last post on the topic you linked.
On the main class, add and enter an "Init State"
In my case:
Code:
this.addState(new InitState(INITSTATE));
this.enterState(INITSTATE);
On the main class initStateList() method just init that state:
Code:
this.getState(INITSTATE).init(gameContainer, this);
And inside "Init State" I render an image on render() and load the rest of states/resources on the update() method:
Code:
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException {
sbg.addState(new MainMenuState(Tankz.MAINMENUSTATE));
sbg.addState(new GameplayState(Tankz.GAMEPLAYSTATE));
sbg.addState(new GameOverState(Tankz.GAMEOVERSTATE));
sbg.getState(Tankz.MAINMENUSTATE).init(gc, sbg);
sbg.getState(Tankz.GAMEPLAYSTATE).init(gc, sbg);
sbg.getState(Tankz.GAMEOVERSTATE).init(gc, sbg);
sbg.enterState(Tankz.MAINMENUSTATE);
}
Like I said it's really simple and it just shows an image while loading resources, but given I don't even have a Resource Manager or anything to load resources it's fine for me, probably you can work from here to make InitState to add useful information, I don't know...