如何独立制作这个方法?
How to make this method independently?
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
听说匿名内部只能访问final变量class
那我不能独立使用这个方法吗?
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
}
});
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
听说匿名内部只能访问final变量class
那我不能独立使用这个方法吗?
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
}
});