Проблема с отображением приложения Android Studio - PullRequest
0 голосов
/ 16 февраля 2019

Я создавал приложение, в котором оно выбирает конкретные данные из базы данных в приложение и отображает их в виде переработчика, но у меня есть проблема, которую я не знаю, как исправить, я почти уверен, что она должнаделать с HomeFragment.java.Пожалуйста, проверьте многострочный комментарий в конце скрипта.Я добавлю репозиторий GitHub, потому что не думаю, что это ошибка одного файла.

Извините за боль и страдания, с которыми вы можете столкнуться заранее из-за своей расплывчатости, но я не знаю, как это сделать.скажи, что лучше*https://github.com/hjdaboss123/BlindNews

Путь к HomeFragment.javaBlind:News/app/src/main/java/com/blindnews/kimh2/blindnews

EDIT1: добавлен пастин для кода на Recycler Adapter и HomeFragment

1 Ответ

0 голосов
/ 16 февраля 2019

Это не полное решение проблемы, но в комментариях мы выяснили проблему, которая заключалась в том, что OP использовал Firestore для получения данных от Realtime database.

Измените это во фрагменте -

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_home, container, false);

    blog_list = new ArrayList<>();
    blog_list_view = view.findViewById(R.id.blog_list_view);

    blogRecyclerAdapter = new BlogRecyclerAdapter(blog_list);
    blog_list_view.setLayoutManager(new LinearLayoutManager(container.getContext()));
    blog_list_view.setAdapter(blogRecyclerAdapter);

    firebaseFirestore = FirebaseFirestore.getInstance();
    firebaseFirestore.collection("articles").addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
            for (DocumentChange doc : documentSnapshots.getDocumentChanges()) {
                if (doc.getType() == DocumentChange.Type.ADDED) {
                    BlogPost blogPost = doc.getDocument().toObject(BlogPost.class);
                    blog_list.add(blogPost);
                }
            }
            Log.d("HomeFragment", "onCreateView: " + blog_list.size());
            //Send updated list to adapter.
            blogRecyclerAdapter.updatePosts(blog_list);
        }
    });

    return view;
}

Обрабатывать обновленный список внутри адаптера -

public void updatePosts(List<BlogPost> blogPostList) {
    //if you want to update the whole list. If you want to append, List has addAll method I think and use it with notifyItemRangeInserted for better performance.
    this.blog_list = blogPostList;
    notifyDataSetChanged();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...