3 回答

TA貢獻1828條經(jīng)驗 獲得超4個贊
從服務器獲取數(shù)據(jù)可能會有一些延遲。
因此,您可以添加一個listener將在您的代碼打印列表被填充后觸發(fā)(如果您的打印代碼將在另一個類中),或者如果它在同一個類中,則調(diào)用另一個方法。
示例代碼
List<Profile> profileList = new ArrayList<Profile>();
public void getData(){
final Listener listener = new Listener() {
@Override
public void onDataReceived() {
//print command goes here
}
}
apiService.getGetlistuser("getlistuser").enqueue(new Callback<ResponseDaftar>() {
@Override
public void onResponse(Call<ResponseDaftar> call, Response<ResponseDaftar> response) {
if (response.isSuccessful()) {
List<GetlistuserItem> getlistuserItemList = response.body().getGetlistuser();
for (int i = 0; i < getlistuserItemList.size(); i++) {
profileList.add(new Profile(
getlistuserItemList.get(i).getUserID(),
getlistuserItemList.get(i).getNickname()
));
}
printData(); //if it is in same class
if(listener != null)
listener.onDataReceived(); //if it is going to happen in another class
/*
is working
for (Profile p : profileList){
Log.i("info", p.getUserid() + '\n' + p.getNickname());
}
*/
}
}
});
// my value is empty
for (Profile p : profileList){
Log.i("info", p.getUserid() + '\n' + p.getNickname());
}
}
public void printData(){
for (Profile p : profileList){
Log.i("info", p.getUserid() + '\n' + p.getNickname());
}
}
// this will be going to make in separate file
interface Listener{
void onDataReceived();
}
添加回答
舉報