Как сохранить состояние DatePicKer ​​после поворота экрана - PullRequest
0 голосов
/ 16 февраля 2011

Я реализовал демонстрационную версию HelloDatePicker, предоставляемую API.

http://developer.android.com/resources/tutorials/views/hello-datepicker.html

Однако я не могу сохранить его значение после поворота экрана. Может кто-нибудь опубликовать пример или указать, как это можно сделать.

Спасибо

Ответы [ 3 ]

1 голос
/ 16 февраля 2011

Используйте onRetainNonConfigurationInstance () для сохранения даты, а в onCreate используйте getLastNonConfigurationInstance () для загрузки и установки даты.

0 голосов
/ 21 января 2019

Даже без фрагмента одно действие может сделать это:

@Override protected void onSaveInstanceState (Bundle outState)
{
    super.onSaveInstanceState (outState);
    outState.putInt ("YEAR", mDatePicker.getYear ());
    outState.putInt ("MONTH", mDatePicker.getMonth ());
    outState.putInt ("DAY", mDatePicker.getDayOfMonth ());
}

@Override protected void onRestoreInstanceState (Bundle savedInstanceState)
{
    super.onRestoreInstanceState (savedInstanceState);
    mDatePicker.updateDate (savedInstanceState.getInt ("YEAR"),
                            savedInstanceState.getInt ("MONTH"),
                            savedInstanceState.getInt ("DAY"));
}
0 голосов
/ 16 февраля 2011

После поворота активность воссоздается. Самый простой способ избежать этого - добавить:

android:configChanges="keyboardHidden|orientation"

в AndroidManifest.xml в объявлении активности.

Для получения дополнительной информации Вы должны прочитать ее .

...