0
REST API
からイメージを取得して、それらをonResponseで正常に配列に割り当てています。しかし、いつもempty
を返すので、ランダムな画像を別のクラスに渡すことはできません。
どうすればいいですか?私を助けてください。この関数は常にnullを返します。私はそれに固執しています
マイfunction
として、以下:
private String[] headerImages = new String[10];
public String fetchOnlyImages(String url) {
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.authenticator(new Authenticator() {
@Override
public Request authenticate(Route route, Response response) throws IOException {
String credential = Credentials.basic(USERNAME, PASSWORD);
return response.request().newBuilder()
.header(AUTH, credential).build();
}
}).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(NewsService.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
final NewsService newsService = retrofit.create(NewsService.class);
Call<HolderNode> holderNodeCall = newsService.holderNode(url);
holderNodeCall.enqueue(new Callback<HolderNode>() {
@Override
public void onResponse(Call<HolderNode> call, retrofit2.Response<HolderNode> response) {
if (response.isSuccessful()) {
HolderNode holderNode = response.body();
MainNode mainNode;
try {
for (int i = 0; i < holderNode.nodes.size(); i++) {
mainNode = holderNode.nodes.get(i);
if (mainNode.node.image != null) {
String imageUrl = mainNode.node.image.src.substring(0, mainNode.node.image.src.length() - 13);
headerImages[i] = imageUrl;
}
}
} catch (Exception ignored) {
}
}
}
@Override
public void onFailure(Call<HolderNode> call, Throwable t) {
}
});
Random random = new Random();
int chosenNumber = random.nextInt(headerImages.length);
return headerImages[chosenNumber];
}
}
に至ることを渡すことができ
を入力する前に、NULL配列が返されるということです答えに感謝します。 – nuhkoca