Criando / removendo dinamicamente botões no Android

Em primeiro lugar, peço desculpas se essa resposta já estiver aqui, pois estou pesquisando há algumas semanas e ainda não encontrei nada.

Estou trabalhando em um aplicativo Android que precisa permitir que o usuário crie e remova botões. Eu sei como criar botões estaticamente normalmente adicionando o botão ao arquivo XML e criando sua funcionalidade no arquivo JAVA.

Em vez disso, tenho um botão estático, que chamarei de "Botão Criar". Quando o usuário pressiona o botão Criar, deve ter a opção de adicionar um novo botão à atividade atual, permitindo alterar o título do referido botão etc. Quando eles fecham o aplicativo e o abrem novamente; o botão que eles adicionaram ainda deve estar lá. Da mesma forma, eles devem ter a opção de remover botões.

Alguém pode me apontar na direção certa? A maioria das fontes que encontrei apenas explica como criar botões estaticamente, como mencionei pela primeira vez.

Obrigado pela ajuda!

Edição: Consegui descobrir algumas coisas com base no feedback que recebi.

Até agora, tenho o seguinte código no método onOptionsItemSelected ():

    if (id == R.id.add_button) 
        {
        Button myButton = new Button(this);
        myButton.setText("Push Me");
        //myButton.setVisibility(View.VISIBLE);
        return true;    
        }

Ainda estou um pouco confuso sobre como isso pode ser adicionado ao layout. Principalmente, estou confuso sobre a chamada findViewById:

    RelativeLayout layout = (RelativeLayout)findViewById(R.id.?);

Qual id devo usar? No arquivo XML principal do aplicativo, não há ID para o layout em si. É apenas um "RelativeLayout".

EDIT2:

Na verdade, eu resolvi o problema. Obrigado pelo conselho! Eu só precisava dar ao meu layout um ID no arquivo XML. Eu sabia que poderia dar um ID aos botões, etc., mas nunca soube que era capaz de fazê-lo para o próprio layout!

questionAnswers(2)

yourAnswerToTheQuestion