首页 \ 问答 \ RecycleView不显示数据(RecycleView do not displaying the data)

RecycleView不显示数据(RecycleView do not displaying the data)

我有一个非常受欢迎的问题 - 为什么数据没有显示在RecycleView中。

那是我的适配器:

public class CommentsAdapter extends RecyclerView.Adapter<CommentsAdapter.ViewHolder>  {

private static final String TAG = "CommentsAdapter";
public ImageView mThumbView;
private List<PostComment> postCommentList;

public CommentsAdapter(List<PostComment> postCommentList) {
    this.postCommentList = postCommentList;
}
@Override
public CommentsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_comment_item, parent, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(CommentsAdapter.ViewHolder holder, int position) {
    PostComment record = postCommentList.get(position);
    holder.mAuthorTextView.setText(record.getUser().getFull_name());
    holder.mDateTextView.setText(record.getCreated_at());
    holder.mTextTextView.setText(record.getText());
}

@Override
public int getItemCount() {
    Log.i(TAG + " comments size", Integer.toString(postCommentList.size()));
    return postCommentList.size();
}

public void addItems(List<PostComment> postCommentList) {
    this.postCommentList.addAll(postCommentList);
}

public class ViewHolder  extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public TextView mAuthorTextView;
    public TextView mDateTextView;
    public TextView mTextTextView;
    public ViewHolder(View v) {
        super(v);
        mAuthorTextView = (TextView) itemView.findViewById(R.id.comment_author);
        mDateTextView = (TextView) itemView.findViewById(R.id.comment_date);
        mTextTextView = (TextView) itemView.findViewById(R.id.comment_text);
    }
}

}

这是我的观点:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
....>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp">
    <ImageView
        android:id="@+id/comment_image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:scaleType="centerInside"
        android:src="@drawable/cat"/>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/middleLayout"
        android:layout_toRightOf="@+id/comment_image"
        android:layout_marginTop="8dp">


        <TextView
            android:id="@+id/comment_author"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:singleLine="true"
            android:text="Dark Plastic"
            android:textColor="?attr/colorPrimary"
            android:textSize="14dp" />



        <TextView
            android:id="@+id/comment_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="8dp"
            android:layout_toRightOf="@+id/comment_author"
            android:text="21 minutes"
            android:textSize="14dp" />


    </RelativeLayout>

    <TextView
        android:id="@+id/comment_text"
        android:layout_width="wrap_content"
        android:layout_toRightOf="@+id/comment_image"
        android:layout_height="wrap_content"
        android:maxLines="3"
        android:layout_marginTop="8dp"
        android:layout_below="@id/middleLayout"
        android:text="sd"
        android:textColor="@android:color/black"
        android:textSize="16dp" />

</RelativeLayout>

<View
    android:id="@+id/divider"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_gravity="bottom"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"></View>

这就是我设置适配器的方式:

  mLayoutManager = new LinearLayoutManager(this);
  mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
  post_details_comments_list.setLayoutManager(mLayoutManager);
  mCommentListAdapter = new CommentsAdapter(new ArrayList<PostComment>());
  post_details_comments_list.setAdapter(mCommentListAdapter);

在我设置适配器之后,我的getItemCount返回项目的数量 - 因此它不是null。

RecycleView布局:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<com.google.android.gms.maps.MapView
    android:id="@+id/post_details_mapview"
    android:layout_width="wrap_content"
    android:layout_height="200dp" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<TextView
    android:id="@+id/post_details_comments_count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/TextLabelStyle"/>

</RelativeLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/post_details_comments_list"
    android:layout_width="match_parent"
    android:scrollbars="vertical"
    android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
    <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/edit_comment"
    android:hint="@string/hint_type_comment"/>

</LinearLayout>

我向服务器发出请求,这里是回调,我得到结果并设置适配器:

  @Override
public void onAllPostCommentsCallback(AllComments allComments) {
    Log.i(TAG + " I've the comments", allComments.getPostCommentList().toString());

    mCommentListAdapter.addItems(allComments.getPostCommentList());
    post_details_comments_list.setAdapter(mCommentListAdapter);
    mCommentListAdapter.notifyDataSetChanged();

}

但是列表没有显示。 可能是什么原因?


I have very popular question - why the data not showing in the RecycleView.

That is my Adapter:

public class CommentsAdapter extends RecyclerView.Adapter<CommentsAdapter.ViewHolder>  {

private static final String TAG = "CommentsAdapter";
public ImageView mThumbView;
private List<PostComment> postCommentList;

public CommentsAdapter(List<PostComment> postCommentList) {
    this.postCommentList = postCommentList;
}
@Override
public CommentsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.post_comment_item, parent, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(CommentsAdapter.ViewHolder holder, int position) {
    PostComment record = postCommentList.get(position);
    holder.mAuthorTextView.setText(record.getUser().getFull_name());
    holder.mDateTextView.setText(record.getCreated_at());
    holder.mTextTextView.setText(record.getText());
}

@Override
public int getItemCount() {
    Log.i(TAG + " comments size", Integer.toString(postCommentList.size()));
    return postCommentList.size();
}

public void addItems(List<PostComment> postCommentList) {
    this.postCommentList.addAll(postCommentList);
}

public class ViewHolder  extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public TextView mAuthorTextView;
    public TextView mDateTextView;
    public TextView mTextTextView;
    public ViewHolder(View v) {
        super(v);
        mAuthorTextView = (TextView) itemView.findViewById(R.id.comment_author);
        mDateTextView = (TextView) itemView.findViewById(R.id.comment_date);
        mTextTextView = (TextView) itemView.findViewById(R.id.comment_text);
    }
}

}

That is my view:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
....>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:paddingBottom="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp">
    <ImageView
        android:id="@+id/comment_image"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:scaleType="centerInside"
        android:src="@drawable/cat"/>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/middleLayout"
        android:layout_toRightOf="@+id/comment_image"
        android:layout_marginTop="8dp">


        <TextView
            android:id="@+id/comment_author"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:singleLine="true"
            android:text="Dark Plastic"
            android:textColor="?attr/colorPrimary"
            android:textSize="14dp" />



        <TextView
            android:id="@+id/comment_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="8dp"
            android:layout_toRightOf="@+id/comment_author"
            android:text="21 minutes"
            android:textSize="14dp" />


    </RelativeLayout>

    <TextView
        android:id="@+id/comment_text"
        android:layout_width="wrap_content"
        android:layout_toRightOf="@+id/comment_image"
        android:layout_height="wrap_content"
        android:maxLines="3"
        android:layout_marginTop="8dp"
        android:layout_below="@id/middleLayout"
        android:text="sd"
        android:textColor="@android:color/black"
        android:textSize="16dp" />

</RelativeLayout>

<View
    android:id="@+id/divider"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_gravity="bottom"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"></View>

That is how I set up the adapter:

  mLayoutManager = new LinearLayoutManager(this);
  mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
  post_details_comments_list.setLayoutManager(mLayoutManager);
  mCommentListAdapter = new CommentsAdapter(new ArrayList<PostComment>());
  post_details_comments_list.setAdapter(mCommentListAdapter);

After I set up the adapter, I the getItemCount returns the quantity of the items - so that is not null.

RecycleView layout:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<com.google.android.gms.maps.MapView
    android:id="@+id/post_details_mapview"
    android:layout_width="wrap_content"
    android:layout_height="200dp" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<TextView
    android:id="@+id/post_details_comments_count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/TextLabelStyle"/>

</RelativeLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/post_details_comments_list"
    android:layout_width="match_parent"
    android:scrollbars="vertical"
    android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
    <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/edit_comment"
    android:hint="@string/hint_type_comment"/>

</LinearLayout>

I make the request to the server and here is the callback, where I get the results and set up the adapter:

  @Override
public void onAllPostCommentsCallback(AllComments allComments) {
    Log.i(TAG + " I've the comments", allComments.getPostCommentList().toString());

    mCommentListAdapter.addItems(allComments.getPostCommentList());
    post_details_comments_list.setAdapter(mCommentListAdapter);
    mCommentListAdapter.notifyDataSetChanged();

}

But the list is not displaying. What can be the reason?


原文:https://stackoverflow.com/questions/35218887
更新时间:2022-06-29 18:06

相关文章

更多

最新问答

更多
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • 电脑高中毕业学习去哪里培训
  • 电脑系统专业就业状况如何啊?
  • IEnumerable linq表达式(IEnumerable linq expressions)
  • 如何在Spring测试中连接依赖关系(How to wire dependencies in Spring tests)
  • Solr可以在没有Lucene的情况下运行吗?(Can Solr run without Lucene?)
  • 如何保证Task在当前线程上同步运行?(How to guarantee that a Task runs synchronously on the current thread?)
  • 在保持每列的类的同时向数据框添加行(Adding row to data frame while maintaining the class of each column)
  • 的?(The ? marks in emacs/haskell and ghc mode)
  • 一个线程可以调用SuspendThread传递自己的线程ID吗?(Can a thread call SuspendThread passing its own thread ID?)
  • 延迟socket.io响应,并“警告 - websocket连接无效”(Delayed socket.io response, and “warn - websocket connection invalid”)
  • 悬停时的图像转换(Image transition on hover)
  • IIS 7.5仅显示homecontroller(IIS 7.5 only shows homecontroller)
  • 没有JavaScript的复选框“关闭”值(Checkbox 'off' value without JavaScript)
  • java分布式框架有哪些
  • Python:填写表单并点击按钮确认[关闭](Python: fill out a form and confirm with a button click [closed])
  • PHP将文件链接到根文件目录(PHP Linking Files to Root File Directory)
  • 我如何删除ListView中的项目?(How I can remove a item in my ListView?)
  • 您是否必须为TFS(云)中的每个BUG创建一个TASK以跟踪时间?(Do you have to create a TASK for every BUG in TFS (Cloud) to track time?)
  • typoscript TMENU ATagParams小写(typoscript TMENU ATagParams lowercase)
  • 武陟会计培训类的学校哪个好点?
  • 从链接中删除文本修饰(Remove text decoration from links)