为什么我的TextView为null,尽管我从数据库中获取值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的TextView为null,尽管我从数据库中获取值?相关的知识,希望对你有一定的参考价值。

我想从数据库中获取我的社交网络应用程序的评论,并在回收者视图上显示它,但评论应该是的文本为空,我不知道为什么。

//数据库参考

PostsRef = FirebaseDatabase.getInstance().getReference().child("Posts").child(Post_Key).child("Comments");

protected void onStart() {
        super.onStart();

        FirebaseRecyclerAdapter<Comments, CommentsViewHolder> firebaseRecyclerAdapter
                = new FirebaseRecyclerAdapter<Comments, CommentsViewHolder>
                (
                        Comments.class,
                        R.layout.all_comments_layout,
                        CommentsViewHolder.class,
                        PostsRef
                )
        {
            @Override
            protected void populateViewHolder(CommentsViewHolder viewHolder, Comments model, int position)
            {
                viewHolder.setUsername(model.getUsername());
                viewHolder.setComment(model.getComment());
                viewHolder.setDate(model.getDate());
                viewHolder.setTime(model.getTime());
            }
        };

        CommentsList.setAdapter(firebaseRecyclerAdapter);

    }

//我认为这是问题所在

    public static class CommentsViewHolder extends RecyclerView.ViewHolder
    {
        View mView;

        public CommentsViewHolder(@NonNull View itemView)
        {
            super(itemView);

            mView = itemView;
        }

        public void setUsername(String username)
        {
            TextView myUserName = (TextView) mView.findViewById(R.id.comment_username);
            myUserName.setText("@" + username + "  ");
        }

        public void setComment(String comment)
        {
            TextView myComment = (TextView) mView.findViewById(R.id.comment_text);
            myComment.setText(" :" + comment);
        }

        public void setDate(String date)
        {
            TextView myDate = (TextView) mView.findViewById(R.id.comment_date);
            myDate.setText("  Date: " + date);
        }

        public void setTime(String time)
        {
            TextView myTime = (TextView) mView.findViewById(R.id.comment_time);
            myTime.setText("  Time: " + time);
        }
    }

//这是我的静态课


public class Comments
{
    public String comment, date, time, username;

    public Comments()
    {

    }

    public Comments(String comment, String date, String time, String username) {
        this.comment = comment;
        this.date = date;
        this.time = time;
        this.username = username;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

任何人都有解决方案,或者可以告诉我哪里是我的错误?即时通讯相对较新的java编程所以是啊..

答案

我通过将注释重命名为注释来解决它,因为在数据库中它是注释但我误读了它。

以上是关于为什么我的TextView为null,尽管我从数据库中获取值?的主要内容,如果未能解决你的问题,请参考以下文章

尽管为它们分配了值,但 DataRows 仍为 null

自动完成文本视图的选定项目显示为简单的Textview?

findViewById 返回 null (TextView) [重复]

findViewByID在FirestoreRecyclerAdapter中返回null

TextView 没有保留我给它的值

在 ADAM 中,如果 admin 设置 pwdLastSet = 0 ,为啥响应控制为 NULL 尽管绑定抛出 NamingException?