Odświeżanie widoku wewnątrz fragmentu

Przeszukałem wiele pytań, które wyglądają tak, ale nie znalazłem odpowiedzi w żadnym z nich.

Mam działanie, które ma 3 zakładki dostępne przez pasek akcji. Osiągnąłem to, dodając 3 fragmenty, które zawyżają widok niestandardowy. Dokonałem rozszerzenia klasy widoku.

W chwili zmiany bazy danych próbuję odświeżyć widok na mojej karcie, wywołując nieważne () / postinvalidate (), ale to nie działa. To samo odnosi się do wywołania onCreateView fragmentu tak samo jak wielu innych opcji, które rozważałem.

Kiedy jednak przejdę do innej karty i wrócę, zmiana została dokonana i mój widok jest aktualizowany tak, jak powinien być.

Jak mogę zasymulować to samo, co dzieje się przy zmianie na inną kartę? Co się dzieje Próbowałem przyjrzeć się cyklowi życia Fragmentu (próbowałem wywołać onCreateView ()), aby to rozgryźć, ale po prostu nie chce się odświeżać / przerysowywać tak, jak powinno.

Dane są ładowane poprawnie, ponieważ dane są zmieniane po zmianie na inną kartę.

Usunąłem część kodu, ponieważ nie ma już znaczenia. Zaimplementowałem Cursorloadery zamiast mojego własnego wzorca Observer, aby powiadomić o zmianie. To jest moja główna działalność w tej chwili.

Pytanie brzmi, co mam teraz zrobić, jeśli chcę przerysować widok wewnątrz tych fragmentów. Jeśli zastosuję fragmentObject.getView (). Invalidate () to nie działa. Mam ten sam problem, co poprzednio, ale teraz mój Observer do powiadamiania o zmianie bazy danych jest poprawnie zaimplementowany za pomocą programów ładujących.

public class ArchitectureActivity extends Activity implements LoaderManager.LoaderCallbacks<Cursor> {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.main);

    ActionBar actionbar = getActionBar();
    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.Tab EditTab = actionbar.newTab().setText("Edit");
    ActionBar.Tab VisualizeTab = actionbar.newTab().setText("Visualize");
    ActionBar.Tab AnalyseTab = actionbar.newTab().setText("Analyse");

    Fragment editFragment = new EditFragment();
    Fragment visualizeFragment = new VisualizeFragment();
    Fragment analyseFragment = new AnalyseFragment();

    EditTab.setTabListener(new MyTabsListener(editFragment));
    VisualizeTab.setTabListener(new MyTabsListener(visualizeFragment));
    AnalyseTab.setTabListener(new MyTabsListener(analyseFragment));

    actionbar.addTab(EditTab);
    actionbar.addTab(VisualizeTab);
    actionbar.addTab(AnalyseTab);

    ArchitectureApplication architectureApplication = (ArchitectureApplication)getApplicationContext();
    architectureApplication.initialize();

    getLoaderManager().initLoader(0, null, this);
    getLoaderManager().initLoader(1, null, this);
}

public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    if (id == 0){
        return new CursorLoader(this, GraphProvider.NODE_URI , null, null, null, null);
    } else if (id == 1){
        return new CursorLoader(this, GraphProvider.ARC_URI , null, null, null, null);
    }
    return null;
}

public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    // Reloading of data, actually happens because when switching to another tab the new data shows up fine
    Log.e("Data", "loaded");
}

public void onLoaderReset(Loader<Cursor> loader) {
}
}

questionAnswers(5)

yourAnswerToTheQuestion