Обновление представления внутри фрагмента

Я искал многочисленные вопросы, похожие на этот, но не нашел ответа ни на один из них.

У меня есть действие, которое имеет 3 вкладки, доступные через панель действий. Я добился этого, добавив 3 фрагмента, которые расширяют пользовательское представление, которое я сделал, расширяя класс представления.

В момент изменения базы данных я пытаюсь обновить представление в моей вкладке, вызывая invalidate () / postinvalidate (), но это не работает. То же самое верно для вызова onCreateView фрагмента, как и многие другие варианты, которые я рассмотрел.

Однако, когда я перехожу на другую вкладку и возвращаюсь назад, изменения были внесены, и мое представление обновляется, как и должно быть.

Как я могу симулировать то же самое, что происходит при переходе на другую вкладку? Что происходит Я попытался взглянуть на жизненный цикл фрагмента (попытался вызвать onCreateView ()), чтобы выяснить это, но он просто не хочет обновлять / перерисовывать, как следует.

Данные загружаются правильно, так как данные меняются при переходе на другую вкладку.

Я удалил часть кода, так как он больше не актуален. Я внедрил Cursorloaders вместо моего собственного шаблона Observer, чтобы уведомить об изменении. Это мое основное занятие прямо сейчас.

Вопрос в том, что мне теперь делать, если я хочу перерисовать вид внутри этих фрагментов. Если я применяю фрагментObject.getView (). Invalidate (), он не работает. У меня та же проблема, что и раньше, но теперь мой наблюдатель для уведомления об изменении в базе данных правильно реализован с помощью загрузчиков.

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) {
}
}

Ответы на вопрос(5)

Ваш ответ на вопрос