有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RecyclerAdapter不加载数据,除非我刷新

这是我在主FeedActivity中初始化适配器的方式:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
FeedAdapter adapter = new FeedAdapter(FeedActivity.this, retrieveYeets());
recyclerView.setAdapter(adapter);

这是我的错误:

java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
    at com.yitter.feed.FeedAdapter.getItemCount(FeedAdapter.java:478)
    at 安卓.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:3170)
    at 安卓.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3067)
    at 安卓.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3518)
    at 安卓.view.View.layout(View.java:16636)
    at 安卓.view.ViewGroup.layout(ViewGroup.java:5437)
    at 安卓.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:598)
    at 安卓.view.View.layout(View.java:16636)
    at 安卓.view.ViewGroup.layout(ViewGroup.java:5437)
    at 安卓.widget.RelativeLayout.onLayout(RelativeLayout.java:107

它在抱怨我的FeedAdapter中的以下代码:

@Override
public int getItemCount() {
    return mYeets.size();
}

我不知道为什么我的名单是空的。显然,在我的列表中有一个NullPointerException,但它并不明显。这可能与列表中元素的位置有关。有人有什么建议吗


共 (1) 个答案

  1. # 1 楼答案

    我认为问题就在这里

    public FeedAdapter(Context context, List<ParseObject> yeets) {
            super();
    
            mYeets = yeets;
            mContext = context;
            this.adapter = this;
    
            profilePictureImageLoader = new ImageLoader(new ProfilePictureFileCache(mContext));
        }
    

    你忘了在开头加上“this”

    public FeedAdapter(Context context, List<ParseObject> yeets) {
            super();
    
            this.mYeets = yeets;
            this.mContext = context;
            this.adapter = this;
    
            profilePictureImageLoader = new ImageLoader(new ProfilePictureFileCache(mContext));
        }