Я использую viewpager, в котором есть фрагменты X, содержащие вопрос. Каждый фрагмент простирается от одного и того же класса фрагментов, чтобы я мог вызывать метод для каждого фрагмента в цикле. Вот что я имею в виду:Прогулка по фрагментам-состояниям равна
private int correctAnswers(){
int NumberCorrect = 0;
var activity = Activity as QuizActivity;
var adapter = activity.getViewPagerAdapter();
List<questionFrag> fragList = new List<questionFrag>();
for (int i = 0; i < activity.getViewPagerAdapter().Count - 1; i++) {
var questionfrag = adapter.GetItem (i) as questionFrag;
if (questionfrag.isCorrect()) {
++NumberCorrect;
}
}
return NumberCorrect;
}
Линия «questionfrag.isCorrect()» позволяет мне перебрать фрагменты и получить ли правильный ответ, полученный от каждого фрагмента. Функция correctAnswers вызывается на последнем фрагменте viewpager. Однако, когда я вызываю метод, все переменные равны нулю в фрагментах. Я думал, что состояния фрагментов были сохранены по своей природе, установив «viewPager.OffscreenPageLimit», чтобы включить все фрагменты, но это не так.
Кто-нибудь знает решение?
Как вы инициализируете эти переменные фрагмента? – dhke
@dhke Обновлено публично в начале класса, инициализировано в OnCreateView() –
@ shn-android-dev: Хорошо, тогда это, вероятно, не «обычная» проблема Android, использующая конструкторы по умолчанию для фрагмента (повторно) создайте их после изменения конфигурации, которое укусит всех, полагающихся на 'newInstance()' и тому подобное. – dhke