У меня есть активность, которая имеет 5 фрагментов в пейджере. Я использовал
viewPager.setOffscreenPageLimit(fragmentList.size());
чтобы иметь возможность создать весь фрагмент за один раз
У меня также есть слушатель, который передаст параметр (объект) всем фрагментам, как только у меня будет newIntent.
в одном из моих фрагментов у меня есть CheckBox, который должен быть выбран в соответствии с параметром активности.
и другие взгляды, с помощью которых я смог изменить ценность своих текстов и фона.
только этот флажок я установил, но когда я вижу это, я вижу, что он выключен, все другие события работают хорошо.
вот активность
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.AppTheme_PopupOverlay);
setContentView(R.layout.activity_configurations);
ViewPager viewPager = findViewById(R.id.container);
TabLayout tabLayout = findViewById(R.id.tabs);
setNdef(getIntent().getExtras());
String type = getNdef().getString("id");
List<Fragment> fragmentList = createFragments(type);
SectionsPagerAdapter pagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), fragmentList);
viewPager.setAdapter(pagerAdapter);
fillTableLayout(tabLayout, type);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
viewPager.setOffscreenPageLimit(fragmentList.size());
readNfcDialog = createReadDialog();
writeNfcDialog = createWriteDialog();
readNfcDialog.show();
setForeground();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
ClassNfcTag wepTag = new ClassNfcTag(intent);
String type = wepTag.defineClassTag();
OmsRepeaterTag omsRepeaterTag = new OmsRepeaterTag(intent);
byteMap = omsRepeaterTag.readTag();
if (byteMap != null) {
setTagOmsConfiguration(OmsConfiguration.fromByteArray(byteMap));
for (OmsListener listener : onReceiveOmsList) {
listener.gotOms(getInTagOmsConfiguration());
}
}
}
и вот один из фрагментов
@Override
public void gotOms(OmsConfiguration configuration) {
setConfiguration(configuration);
if (isAdded()) {
boolean status = getConfiguration().getDeleteRsl();
delete.setChecked(status);
delete.setSelected(status);
}
}
В качестве решения я попытался использовать Switch вместо CheckBox, и он работал хорошо.
и я также попытался настроить пейджер на запуск именно с фрагмента, имеющего CheckBox, и он также работает.
viewPager.setCurrentItem(checkBoxFragmentPosition);
Я также попытался отладить код, и он показывает мне, что проверяется checBox, и когда я пытался изменить его на проверенный, прикоснувшись к нему (прогамитально он проверен, в Ui я вижу его непроверенным), он меняется сам с непроверенного на снят, а затем при следующем касании сменится на галочку.
Я буду очень рад видеть ваши решения.