[LibGDX] Stage wont stop acting? Input handled on wrong screen

Problem is the following: Once I go to my game from the main menu, everything renders correctly, but the buttons from the main menu still work if I tap where they should be. (For instance, if I click on the play button again, the game will restart)

Help?

Render method:

	public void render () {
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
		if(currentState == GameState.ACTOR) {
			stage.act();
			stage.draw();
			Table.drawDebug(stage);
		} else if(currentState == GameState.GAME) {
			if(playActor == null) {
				currentState = GameState.ACTOR;
				return;
			} else {
				batch.begin();
					playActor.render(batch);
				batch.end();
			}
		}
	}

MainMenu.java

package com.fmeg.tapout.screens;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.fmeg.tapout.TapoutGame;

public class MainMenu extends Table {

	private TapoutGame game;
	
	// Setup the TextButtons for the Menu
	TextButton btnPlay30s, btnPlay1m, btnPlay5m, btnAchievements, btnHighscores;
	Label gameName;
	
	public MainMenu(TapoutGame _game) {
		super(_game.getSkin());
		this.game = _game;
		setupWidgets();
		setupLayout();
		setupEvents();
	}
	
	private void setupWidgets() {
		BitmapFont title_font = new BitmapFont();
		title_font.scale(4f);
		title_font.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);
		LabelStyle title_font_style = new LabelStyle(title_font, Color.WHITE);
		gameName = new Label("Game Name", title_font_style);
		btnPlay30s = new TextButton("30 Second Challenge!", game.getSkin());
		btnPlay1m = new TextButton("1 Minute Challenge!", game.getSkin());
		btnPlay5m = new TextButton("5 Minute Challenge!", game.getSkin());
		btnAchievements = new TextButton("Achievements!", game.getSkin());
		btnHighscores = new TextButton("Highscores!", game.getSkin());
	}
	//table.add(btn).size(100, 100);
	private void setupLayout() {
		setFillParent(true);
		add(gameName).row();
		pad(10).defaults().space(20).fillX();
		add(btnPlay30s).size((Gdx.graphics.getWidth()) - (Gdx.graphics.getWidth() / 4), Gdx.graphics.getHeight() / 16).row();
		add(btnPlay1m).size((Gdx.graphics.getWidth()) - (Gdx.graphics.getWidth() / 4), Gdx.graphics.getHeight() / 16).row();
		add(btnPlay5m).size((Gdx.graphics.getWidth()) - (Gdx.graphics.getWidth() / 4), Gdx.graphics.getHeight() / 16).row();
		add(btnAchievements).size((Gdx.graphics.getWidth()) - (Gdx.graphics.getWidth() / 4), Gdx.graphics.getHeight() / 16).row();
		add(btnHighscores).size((Gdx.graphics.getWidth()) - (Gdx.graphics.getWidth() / 4), Gdx.graphics.getHeight() / 16).row();
	}
	
	private void setupEvents() {
		btnPlay30s.addListener(new ClickListener() {
			public void clicked(InputEvent event, float x, float y) {
				game.setGame(new Play(game, 30));
				game.setState(TapoutGame.GameState.GAME);
			}
		});
		
		btnAchievements.addListener(new ClickListener() {
			public void clicked(InputEvent event, float x, float y) {
				game.setScreen(new Achievements(game));
			}
		});
	}
}

I guess what the problem is, is that the MainMenu is never being destroyed, how can I do that?

Current workaround is to clear the table when I switch to another table, but there is probably a better way

Either there should be a method setEnabled or setDisabled on every actor (table is also an actor). You can deactivate it with that method, wich also deactivates input handling. If you don’t draw the stage at all then you should call Gdx.input.setInputProcessor(null) when you enter the gameplay state. If you want to go back to the main menu, then you would need to call setInputProcessor with your stage as parameter.