Перезагрузить данные 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();
}