Я пытаюсь получить данные из магазина и отобразить их как RecyclerView в TabbedActivity. Данные отображаются на каждой вкладке / фрагменте, но иногда, если я проведу пальцем по вкладкам, а затем вернусь, данные исчезнут, и появится сообщение об ошибке «Нет подключенного адаптера, пропускающего макет».
Фрагмент. java
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.sligo_fragment, container, false);
recyclerView = (RecyclerView) v.findViewById(R.id.sligo_recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return v;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db.collection("sligo")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (QueryDocumentSnapshot document : task.getResult()) {
placeNames.add(document.getData().get("Name").toString());
}
MyAdapter adapter = new MyAdapter(placeNames);
recyclerView.setAdapter(adapter);
}
});
}
MyAdapter. java
public static class MyViewHolder extends RecyclerView.ViewHolder{
public TextView textView;
public MyViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.info_text);
}
}
public MyAdapter(ArrayList<String> myDataset) {
mDataset = myDataset;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// create a new view
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item, parent, false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}