Java恢复旧的变量值

Java恢复旧的变量值,java,android-fragments,Java,Android Fragments,在我的应用程序中,我将一个列表从一个片段传递到另一个片段。我想在另一个片段中使用这个列表,这应该不会太难。在这个片段的onCreateView中,我有以下代码: userList = getArguments().getParcelableArrayList("userList"); 此userList根据用户在上一片段中按下的按钮而有所不同。它返回正确的ArrayList,但是当我想在类中进一步访问列表时,列表的内容突然变为先前加载的列表的内容 在同一片段中: public void onM

在我的应用程序中,我将一个列表从一个片段传递到另一个片段。我想在另一个片段中使用这个列表,这应该不会太难。在这个片段的
onCreateView
中,我有以下代码:

userList = getArguments().getParcelableArrayList("userList");
userList
根据用户在上一片段中按下的按钮而有所不同。它返回正确的ArrayList,但是当我想在类中进一步访问列表时,列表的内容突然变为先前加载的列表的内容

在同一片段中:

public void onMapReady(GoogleMap googleMap) {
    FirebaseHelper.photoDelegate = this;
    FirebaseHelper.initializeMapMarkers(currentUser, false, false, null);
…用户列表的值仍然与创建视图中的值相同。当fragment类收到来自
initializeMapMarkers
的回调时,该值已更改为第一次调用该片段时的值

一些澄清代码:

public class MapFragment extends Fragment implements OnMapReadyCallback, CallbackGroupUpdate,
    PhotoInterface {

private ArrayList<User> userList = new ArrayList<>();
private List<String> userIDs;
private User currentUser;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_map, container, false);

    (...)

    userList = getArguments().getParcelableArrayList("userList"); // Get information of users in group
    currentUser = getArguments().getParcelable("currentUser"); // Get information of current user

    (...)

    return view;
}

(...)

@Override
public void onMapReady(GoogleMap googleMap) {

    (...)

    FirebaseHelper.photoDelegate = this;
    FirebaseHelper.initializeMapMarkers(currentUser, false, false, null);
再次说明:
FirebaseHelper

public static void getOtherUserMapMarkers(final ArrayList<User> userList) {
    int i = 0;
    ArrayList<User> initializedUsers = new ArrayList<>();
    for (User user : userList) {
        i++;
        if (i == userList.size()) {
            initializeMapMarkers(user, true, true, initializedUsers);
        } else {
            initializeMapMarkers(user, true, false, initializedUsers);
        }
    }
}
公共静态void getOtherUserMapMarkers(最终ArrayList用户列表){
int i=0;
ArrayList initializedUsers=新建ArrayList();
for(用户:userList){
i++;
if(i==userList.size()){
initializeMapMarkers(用户、true、true、initializedUsers);
}否则{
initializeMapMarkers(用户、true、false、initializedUsers);
}
}
}

在此之后,
userList
将不再执行任何操作,因此当
MapFragment
在此方法之后收到另一个回调时,如何更改它?

an将有助于我编辑我的问题,希望现在更清楚的是,片段没有显示对userList的引用,也没有显示currentUser是如何获得/创建的。我只能猜测一些可能的问题,因为示例只显示了整个代码的一小部分。所有使用变量的代码现在都在问题中
public static void getOtherUserMapMarkers(final ArrayList<User> userList) {
    int i = 0;
    ArrayList<User> initializedUsers = new ArrayList<>();
    for (User user : userList) {
        i++;
        if (i == userList.size()) {
            initializeMapMarkers(user, true, true, initializedUsers);
        } else {
            initializeMapMarkers(user, true, false, initializedUsers);
        }
    }
}