В действии есть FragmentViewPager, который содержит 5 фрагментов. 5 фрагментов будут созданы одновременно при запуске действия. Если фрагмент, который выполняет setChecked (), не является главной страницей, когда приложение выполняет CheckBox setChecked (true), пользовательский интерфейс CheckBox пуст, а значение isChecked () истинно.
Я обнаружил, что notifyViewAccessibilityStateChangedIfNeeded(
AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED); находится в setChecked(boolean checked) android CompoundButton.java. Возможно, он не может изменить пользовательский интерфейс при фрагменте в фоновом режиме. Но как это решить.
if (cls.getIf_allow_to_join().equals("是")) {
checkBox.setChecked(true);
} else if (cls.getIf_allow_to_join().equals("否")) {
checkBox.setChecked(false);
}
Это код setChecked () фрагмента OnCreateView () в AsyncTask. И если я установлю этот фрагмент как currentItem при запуске действия, этой проблемы не будет.
Я ценю вашу помощь, но считаю, что ваш комментарий не имеет отношения к моему вопросу.
Вы можете расширить вопрос, чтобы мы могли помочь вам еще кое-что. Добавьте код ..
Хорошо, некоторая информация была добавлена.
@karuao Вы получаете сообщение об ошибке или этого просто не происходит?
нет ошибки, просто Android не изменил пользовательский интерфейс CheckBox
Если эта проверка выполняется в doInBackground(), то имеет смысл, что состояние не обновлено должным образом. Как вы назначаете экземпляр флажка? Это относительно экземпляра фрагмента? Это разные идентификаторы для каждого фрагмента? В противном случае это также может быть причиной проблемы.
Эта проверка выполняется в onPostExecute (), который вызывает прослушиватель обратного вызова. Ставлю галочку в onCreateView () фрагмента. Не существует идентификатора для фрагмента, которым управляет FragmentPagerAdapter.
Для других, сталкивающихся с этой проблемой, отметьте этот вопрос: stackoverflow.com/questions/42997873/…
Пожалуйста, используйте AppCompatCheckBox вместо CheckBox.
Проверить android.support.v7.widget.AppCompatCheckBox
Скорее всего, вам не хватает базовой концепции, а именно модели, то есть «другого места» для хранения данных. Взгляните на эту статью