我有两个类,首先是使用以下方法的ViewDatabase.java:
public void collectUserInfo(final ArrayList<String> ids){
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
ArrayList<User> friends = new ArrayList<>();
//Add Some Users to friends...
ListOfFriendsFragment.showFacebookFriendUI(friends);
}
});
}
从ListOfFriendsFragment
调用此方法。这是showFacebookFriendUI
方法:
public static void showFacebookFriendUI(ArrayList<User> friendsList){
if(friendsList.size()>0){
friends=friendsList; //This is wrong
}else
Log.e("ERROR", "No friends");
}
问题是由于静态方法,我无法在片段中使用ArrayList。我也无法在方法中执行代码,因为我需要访问某些属性。 因此,我只需要获取ArrayList的副本并在类中使用它即可。
**我不能只返回ArrayList,因为getFriends是异步的,所以我需要在完成时调用showFacebookFriendUI。