Android: динамическое создание элементов управления и изменение ориентации - PullRequest
2 голосов
/ 30 января 2010

В настоящее время я работаю над приложением для Android, которое динамически создает элементы управления. Каждый раз, когда пользователь нажимает кнопку, под кнопкой появляется новый EditText, и пользователь может взаимодействовать с EditText. Однако, если ориентация экрана изменится, текст редактирования, созданный пользователем, также исчезнет.

Пример кода пользователя, создающего EditText: (находится в onClick (), p - это базовый layoutParamas, а layout - это LinearLayout, расположенный под кнопкой)

    EditText editText = new EditText(this);
    layout.addView(buttonView, p);

Хотите знать, что было бы самым простым способом сохранить макет при изменении ориентации экрана, чтобы я не потерял ни один из элементов управления или неправильно создал элементы управления.

Спасибо.

обновление: переопределив onSaveInstanceState (), я смог сохранить объект, который содержал список всех элементов управления, добавленных пользователем по праву. Используя этот список, я смог создать элементы управления в onCreate ().

Все еще любопытно, есть ли более простой способ выполнить эту задачу, поскольку мне пришлось бы реорганизовать много кода, чтобы полностью реализовать этот метод.

1 Ответ

5 голосов
/ 30 января 2010

Попробуйте добавить это к тегу <activity> в файле манифеста:

android:configChanges="orientation|keyboardHidden"

Затем сделайте это в классе занятий:

@Override
public void onConfigurationChanged(final Configuration newConfig)
{
    // Ignore orientation change to keep activity from restarting
    super.onConfigurationChanged(newConfig);
}

Если вы сделаете это, ваша деятельность будет просто повторно использована при изменении ориентации, а не уничтожена / воссоздана. Таким образом, вам не нужно будет сохранять состояние всего, что у вас происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...