Ich habe tatsächlich das einen Verweis auf alle Fragmente zu erhalten:
private List<WeakReference<Fragment>> mFragList = new ArrayList<WeakReference<Fragment>>();
@Override
public void onAttachFragment (Fragment fragment) {
mFragList.add(new WeakReference(fragment));
}
public List<Fragment> getActiveFragments() {
ArrayList<Fragment> ret = new ArrayList<Fragment>();
for(WeakReference<Fragment> ref : mFragList) {
Fragment f = ref.get();
if(f != null) {
if(f.isVisible()) {
ret.add(f);
}
}
}
return ret;
}
public Fragment findFragement(String tClass) {
List<Fragment> fragments = getActiveFragments();
for (Fragment fragment : fragments) {
if (tClass.equalsIgnoreCase("Home")) {
if (fragment instanceof ToggleFragment) {
return fragment;
}
} else if (tClass.equalsIgnoreCase("Contacts")) {
if (fragment instanceof ContactFragment) {
return fragment;
}
}
}
return null;
}
Der erste Kommentar zu Michaels Antwort sagt alles ... http://stackoverflow.com/questions/6102007/is-there -a-way-to-get-references-für-alle-derzeit-aktive-fragments-in-a-activi 'Wir sollten diese Methode nicht verwenden. Es ist mit @hide gekennzeichnet und sollte nicht in die Support-Bibliothek jar aufgenommen werden. Es sollte nicht als Teil der exportierten API betrachtet werden. Da es ** versteckt ** war, denke ich, dass Google schließlich entschieden hat, diese Methode zu entfernen. –
Haben Sie Import android.support.v4.app.Fragment verwendet? – sonnv1368
Diese Methode ist seit Version 24.1.1 der Support-Bibliothek nicht mehr veraltet. Wie genau wird der Fehler angezeigt? –