RecyclerView跳转到下一个Activity,返回请求接口,数据位置不变
时间: 2023-12-15 08:04:37 浏览: 22
在使用`RecyclerView`跳转到下一个`Activity`时,如果希望返回上一个`Activity`后数据位置不变,可以通过以下步骤实现:
1. 在跳转到下一个`Activity`之前,记录当前`RecyclerView`的滚动位置。例如:
```java
int scrollPosition = ((LinearLayoutManager) recyclerView.getLayoutManager())
.findFirstVisibleItemPosition();
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("scroll_position", scrollPosition);
startActivity(intent);
```
2. 在返回上一个`Activity`后,不需要重新请求数据,仅仅需要将`RecyclerView`的滚动位置恢复到之前的位置即可。您可以在上一个`Activity`的`onRestart`方法中获取之前记录的滚动位置,然后将滚动位置恢复。例如:
```java
@Override
protected void onRestart() {
super.onRestart();
int scrollPosition = getIntent().getIntExtra("scroll_position", 0);
recyclerView.scrollToPosition(scrollPosition);
}
```
通过以上步骤,即可实现在返回上一个`Activity`后数据位置不变的效果。需要注意的是,如果在下一个`Activity`中修改了数据,返回上一个`Activity`后仍需要重新加载数据,这时候需要在`onRestart`方法中重新请求数据并更新`RecyclerView`。