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());
}
}
}
});
}
我想使用私有ArrayList mMyArray不是静态的
我听说只有匿名内部类可以访问最终变量
那我不能单独使用此方法吗?
最佳答案
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);
}
然后,您可以在任何地方调用此函数,如下所示:
patchUsersExceptCurrentUser("Example", new ParseListener() {
@Override
public void onSucess((List<Object>objects) {
myArray = objects;
}
@Override
public void onError(ParseException e) {
//show error
}
});