Creación / eliminación dinámica de botones en Android

En primer lugar, mis disculpas si esta respuesta ya está aquí, ya que he estado buscando durante algunas semanas y todavía no he encontrado nada.

Estoy trabajando en una aplicación de Android que debe permitir al usuario crear y eliminar botones. Sé cómo crear botones normalmente de forma estática agregando el botón al archivo XML y creando su funcionalidad en el archivo JAVA.

En cambio, tengo un botón estático que denominaré "Crear botón". Cuando el usuario presiona el botón Crear, se le debe dar la opción de agregar un nuevo botón a la actividad actual, lo que le permite cambiar el título de dicho botón, etc. Cuando cierran la aplicación y la abren nuevamente; el botón que agregaron aún debería estar allí. Del mismo modo, se les debe dar una opción para eliminar botones.

¿Alguien me puede apuntar en la dirección correcta? La mayoría de las fuentes que he encontrado solo explican cómo crear estáticamente botones, como mencioné por primera vez.

¡Gracias por la ayuda!

EDITAR: pude resolver algunas cosas en función de los comentarios que me han dado.

Hasta ahora tengo el siguiente código en el método onOptionsItemSelected ():

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

Todavía estoy un poco confundido acerca de cómo se puede agregar esto al diseño. Principalmente, estoy confundido acerca de la llamada findViewById:

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

¿Qué identificación debo usar? En el archivo XML principal de la aplicación, no hay ID para el diseño en sí. Es solo un "diseño relativo".

EDIT2:

En realidad, resolví el problema. ¡Gracias por el consejo! Solo necesitaba darle a mi diseño una identificación en el archivo XML. ¡Sabía que podía dar una identificación a los botones, etc., pero nunca supe que podía hacerlo para el diseño en sí!

Respuestas a la pregunta(2)

Su respuesta a la pregunta