Только один комментарий отображается в обзоре переработчика - Firebase - PullRequest
0 голосов
/ 25 мая 2018

В моем приложении зарегистрированный пользователь может успешно оставлять комментарии.Теперь в моем коде я делаю проверку.Если в заголовке конкретной новости есть комментарий, заполните заполненный вид.Если нет, тогда отобразите текстовое представление, говорящее, эй, нет никаких комментариев.Однако вместо итогов отображается только один комментарий.

Это проверка, о которой я говорил.

Query query = mDatabase.child("comments").orderByChild("newsTitle").equalTo(newsTitle);

    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.exists()){
                for(DataSnapshot dataSnapshots : dataSnapshot.getChildren()){
                    Comment comment = dataSnapshots.getValue(Comment.class);

                    //mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(userId);

                    commentArrayList.add(comment);

                    mRecyclerView.setAdapter(displayCommentsAdapter);

                    displayCommentsAdapter = new DisplayCommentsAdapter(getApplication(),commentArrayList);

                    displayCommentsAdapter.notifyDataSetChanged();

                    //displayCommentsAdapter.setCommentsData(commentArrayList);

                    Log.d(LOG_TAG, "commentArrayList size: " + String.valueOf(commentArrayList.size()));

                }
                //commentsTextView.setVisibility(View.VISIBLE);

            }else{
                //Toast.makeText(DisplayComments.this,"There are no comments posted",Toast.LENGTH_LONG).show();
                noCommentsTextView.setVisibility(View.VISIBLE);

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

 Log.d(LOG_TAG, "commentArrayList size: " + 
 String.valueOf(commentArrayList.size()));

успешно возвращает размерсписка массивов.то есть.10 комментариев размер ArrayList равен 10. Так что эта часть хороша.

LogCat также дает мне другое сообщение.

E/RecyclerView: No adapter attached; skipping layout

Возможно, это как-то связано с моей текущей проблемой.

Обнаружено действие DisplayComments здесь .

И мой код адаптера здесь .

Файл single_comment_row.xml здесь

Спасибо,

Тео.

1 Ответ

0 голосов
/ 25 мая 2018

Вам необходимо установить адаптер вне петли

 query.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapshot.exists()){
            for(DataSnapshot dataSnapshots : dataSnapshot.getChildren()){
                Comment comment = dataSnapshots.getValue(Comment.class);

                //mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(userId);

                commentArrayList.add(comment);



                //displayCommentsAdapter.setCommentsData(commentArrayList);

                Log.d(LOG_TAG, "commentArrayList size: " + String.valueOf(commentArrayList.size()));

            }

            mRecyclerView.setAdapter(displayCommentsAdapter);

            displayCommentsAdapter = new DisplayCommentsAdapter(getApplication(),commentArrayList);

            displayCommentsAdapter.notifyDataSetChanged();
            //commentsTextView.setVisibility(View.VISIBLE);

        }else{
            //Toast.makeText(DisplayComments.this,"There are no comments posted",Toast.LENGTH_LONG).show();
            noCommentsTextView.setVisibility(View.VISIBLE);

        }

РЕДАКТИРОВАТЬ

Изменить высоту вашего ConstraintLayout на android:layout_height="wrap_content"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...