Перезагрузить данные PageFragment после обновления полей в viewpager

Я использовал эту статью, и у меня есть вопрос.

В PageFragment (расширяет фрагмент) у меня есть несколько полей, которые загружаются из БД (sqlite), и у этого фрагмента есть кнопка, которая после щелчка обновляет таблицу в БД. Я хочу перезагрузить фрагмент, чтобы показать обновленные данные (без смахивания). Я знаю, что Android хранит состояния в памяти, но мне нужно показывать обновленные поля без смахивания.

Я пытаюсь использовать POSITION_NONE, setOffscreenPageLimit, notifyDataSetChanged, detach, attach и т. Д., Но ни один из них не работает, и я запутался в них.

1 ответ

Решение

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

public void onCreateView(){
    //your view creation and inflation
    //call populateUI after inflation here
}

public void onResume(){
    //or here
}

//take data from someplace and populate your UI may be from database
public void populateUI(){
  //get values and set fields 
}

public void onClick(View v){
    //the button click
    //update db
    //then
    populateUI();
}
Другие вопросы по тегам