Как сохранить программно созданные элементы при повороте экрана?

Друзья, доброго времени суток! Подскажите пожалуйста как сохранить программно созданные элементы при повороте экрана? Знаю как с помощь onSaveInstanceState и onRestoreInstanceState сохранять данные, но как положить объект в пакет я не знаю, буду благодарен за любой развернутый ответ, Спасибо! Ниже код приложения:

public class MainActivity extends AppCompatActivity {


    Button button1;
    LinearLayout container;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button1 = (Button) findViewById(R.id.button1);
        container = (LinearLayout) findViewById(R.id.ll1);

        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                LayoutInflater li1 = getLayoutInflater();

                View it1 = li1.inflate(R.layout.row, container, false);

                container.addView(it1);
            }
        });
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {

        super.onSaveInstanceState(outState);


    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);

    }
}

Ответы (2 шт):

Автор решения: Olmicron

Чтобы положить объект в бандл, нужно наследовать его (объект) от Serializable или Parcelable. Или ложить только данные из этого объекта и после уже восстанавливать всё, создавая новый объект и заполняя его восстановленными данными.

→ Ссылка
Автор решения: Сергей Бувака

Класть тяжёлые объекты в бандлы не самая лучшая идея.

Размер бандла органичен (1мб было раньше, возможно сейчас уже больше).

И это является плохой практикой. Лучшим решением является либо сохранение данных в какой-то другой сущности, а бандл класть к примеру его id для того чтоб после поворота снова это вытянуть.

Это может быть сохранение в базу данных. Либо это может быть какая-то сущность которая не умирает вместе с вашей View, например Presenter или ViewModel.

Если же вы все же хотите положить в бандл то лучше отдавать предпочтение Parcelable перед Serialaizeble. Так как парселизация проходит быстрее и не использует рефлексию.

→ Ссылка