Я пытаюсь получить фрагмент с некоторой бизнес-логикой, но когда он запускается, я получаю следующую ошибку
Фрагмент должен быть общедоступным статическим классом для правильного воссоздания из состояния экземпляра
Я нашел несколько похожих вопросов, но ответы не помогли в моем случае, так как у меня нет вложенного / анонимного класса, который я мог бы сделать статическим (или я что-то упустил?)
Как я могу решить эту проблему? вопрос?
...
class OverviewFragment extends Fragment {
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager layoutManager;
public OverviewFragment(){
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
loadRecords();
return inflater.inflate(R.layout.fragment_overview, container, false);
}
public void drawCategoryChart(Map<String,Integer> categories) {
...
}
public void drawUserChart(...) {
...
}
public void loadRecords(){
List<Record> records =
AppDatabase.getAppDatabase(getActivity().getApplicationContext()).recordDao().getAll();
...
RecyclerView recyclerView = (RecyclerView) getView().findViewById(R.id.spendingOverview);
layoutManager = new LinearLayoutManager(this.getActivity().getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
mAdapter = new RecordOverviewRecycleListAdapter(records);
recyclerView.setAdapter(mAdapter);
}
// Returns Map of all categories with their respective sums of all transactions
public Map<String,Integer> getCategorySums(List<Record> records){
Map<String,Integer> catSums = new HashMap<String, Integer>();
for (Record r : records){
if (!catSums.containsKey(r.getCategory())){
catSums.put(r.getCategory(),r.getAmount());
} else {
catSums.put(r.getCategory(),catSums.get(r.getCategory())+r.getAmount());
}
}
return catSums;
}
}