private static ArrayList mMyArray;
public void patchUsersExceptCurrentUser(String name) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereNotEqualTo("username", name);
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects, ParseException e) {
if (e == null) {
for (ParseUser user : objects) {
mMyArray.add(user.getUsername());
}
}
}
});
}
I want to use private ArrayList mMyArray not static
I've heard that only final variable can access in anonymous inner class
So then can't I use this method independently?
public void patchUsersExceptCurrentUser(String name,ParseListener listener) {
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereNotEqualTo("username", name);
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects, ParseException e) {
if (e == null) {
listener.onSucess(objects);
}
else{
listener.onError(e);
}
}
});
}
public interface ParseListener{
void onSucess(List<Object>objects);
void onError(ParseException e);
}
Then you can call this function everywhere, like this:
patchUsersExceptCurrentUser("Example", new ParseListener() {
@Override
public void onSucess((List<Object>objects) {
myArray = objects;
}
@Override
public void onError(ParseException e) {
//show error
}
});