Динамическое создание / удаление кнопок в Android

Во-первых, мои извинения, если этот ответ уже здесь, так как я искал несколько недель и еще ничего не нашел.

Я работаю над приложением для Android, которое должно позволять пользователю создавать и удалять кнопки. Я знаю, как обычно создавать кнопки статически, добавляя кнопку в файл XML и создавая ее функциональность в файле JAVA.

Вместо этого у меня есть статическая кнопка, которую я буду называть «Создать кнопку». Когда пользователь нажимает кнопку «Создать», ему должна быть предоставлена ​​возможность добавить новую кнопку в текущее действие, что позволит ему изменить заголовок указанной кнопки и т. Д. Когда они закроют приложение и снова откроют его; кнопка, которую они добавили, все еще должна быть там. Точно так же им должна быть предоставлена ​​возможность удалять кнопки.

Может ли кто-нибудь указать мне правильное направление? Большинство источников, с которыми я сталкивался, объясняют только то, как статически создавать кнопки, как я упоминал ранее.

Спасибо за помощь!

РЕДАКТИРОВАТЬ: Я смог выяснить некоторые вещи на основе обратной связи, которую я дал.

Пока у меня есть следующий код в методе onOptionsItemSelected ():

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

Я все еще немного озадачен тем, как это можно добавить в макет. В основном, я не совсем понимаю вызов findViewById:

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

Какой идентификатор мне следует использовать? В основном XML-файле приложения нет идентификатора для самого макета. Это просто "RelativeLayout".

EDIT2:

Собственно, я решил проблему. Спасибо за совет! Мне просто нужно было дать моему макету идентификатор в файле XML. Я знал, что могу дать кнопкам и т. Д. Идентификатор, но никогда не знал, что смог сделать это для самого макета!

Ответы на вопрос(2)

Ваш ответ на вопрос