私はこのようにやろうとしています...更新時に使用されるメソッドOnResponseのリストを返す方法は?
public final List<ClientResponse> returnedList2 = new ArrayList<>();
clientPost3(nome, returnedList2);
そして、ベローズであるメソッドの呼び出しclientPost3:しかし
public void clientPost3(String nome, final List<ClientResponse> returnedList) {
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(SERVER_URL)
.build();
final Interface service = retrofit.create(Interface.class);
Call<List<ClientResponse>> call = service.postClient(nome);
call.enqueue(new Callback<List<ClientResponse>>() {
@Override
public void onResponse(Call<List<ClientResponse>> call, Response<List<ClientResponse>> response) {
for(ClientResponse clientResponse: response.body()){
Log.e(TAG, clientResponse.getCliente());
returnedList.add(clientResponse);
}
Log.e(TAG, "Success");
Log.e("Teste2", returnedList.toString());
}
@Override
public void onFailure(Call<List<ClientResponse>> call, Throwable t) {
Log.e(TAG, "FAIL");
}
});
}
を、returnedList2は空であるメソッドの呼び出し後に空になってきていますclientPost3。
onResponseの中にあるreturnedListを取得するにはどうすればよいですか?
あなたは2つのオプションがあります:クラスレベルでの1-宣言returnedList2、2-使用するコールバックやリストを受け取り、それを – MatPag
使用する方法を改造は非同期です! clientPost3の直後のコードは、onResponseが起きる前にほとんど常に実行されます...リストを返すことは問題ではありません。問題は、正しい順序でメソッドを呼び出すことです。 –