Android ListFragment не сохраняет пакет в onSaveInstanceState () / не получает пакет в onActivityCreated ()

Я новичок в Android, и у меня возникла следующая проблема. Я разрабатываю как для Android 2, так и для 3, поэтому использую фрагменты. Однако, чтобы приложение работало на устройствах Android 2, я импортирую android.support.v4.app.ListFragment. Мне нужно сохранить выбор в моем ListFragment при изменении ориентации экрана. Я переопределяю метод onSaveInstanceState () и помещаю int в пакет. Когда экран поворачивается, вызывается этот метод, и в пакет добавляется int. Однако, когда вызывается onActivityCreated () , его пакет равен нулю. Я следую примеру, приведенному на веб-сайте Android: http://developer.android.com/reference/android/app/Fragment.html , но, как упоминалось выше, после onSaveInstanceState () вызывается, пакет в onActivityCreated () по-прежнему пуст.

Вот код:

import android.support.v4.app.ListFragment;
public class VisitsHomeFragment extends ListFragment {
    private int selectedPosition = -1;  

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        if (savedInstanceState != null) {
          if (savedInstanceState.containsKey("SELECTED_POSITION")) {
                selectedPosition = savedInstanceState.getInt("SELECTED_POSITION");
          }
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("SELECTED_POSITION", selectedPosition);
    }
}

Я был бы признателен за любую помощь с этой проблемой.

13
задан Maria 28 July 2011 в 13:25
поделиться