【发布时间】:2015-06-15 17:35:02
【问题描述】:
我正在我的 onCreate 方法中创建一个带有空列表的 recyclerview 适配器。这样做是必要的,因为标记到 mAdapter 是一个滚动侦听器,如果我向上滚动,它允许我从数据库服务器获取另一个页面(为简洁起见,我没有复制和粘贴该代码)。
public class MainActivity extends ActionBarActivity {
ArrayList<Post> totalPost = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
mAdapter = new MyAdapter(totalPost, mRecyclerView);
mRecyclerView.setAdapter(mAdapter); }
我在 onResume 中调用我的网络操作,而 onResume 发生在 onCreate 之后。
一旦我从网络操作中获得成功,我就会这样做,但是什么都没有发生:
totalPost = Lists.newArrayList(result.getPosts()); //saving the network results into an array
mAdapter.notifyDataSetChanged();
我也试过这个:
totalPost = Lists.newArrayList(result.getPosts()); //saving the network results into an array
mAdapter.notifyItemRangeChanged(0, totalPost.size());
我也试过这个,它有效,但并不理想。我在这里创建了一个新的适配器,我也失去了我的滚动监听器。我也不能在引用我的网络操作的方法中引用我的滚动侦听器,因为那将是“循环引用”:
totalPost = Lists.newArrayList(result.getPosts()); //saving the network results into an array
mAdapter = new MyAdapter(totalPost, mRecyclerView);
mRecyclerView.setAdapter(mAdapter);
为什么适配器不工作?
【问题讨论】:
标签: android adapter android-recyclerview