java - 如何在 oKHTTP android studio 中返回数据
问题描述
当我使用 log.d 在 ok http 方法中检查其值时,如何在 ok http 中返回 Top Complete 值以使用它出现在回收视图中它是空的,所以我该如何解决这个问题以及如何在避免注意我在片段中工作时返回数组
package com.example.animekingdom.ui.gallery;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.animekingdom.MyAdapter;
import com.example.animekingdom.R;
import com.example.animekingdom.ui.Anime;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import org.jetbrains.annotations.NotNull;
import org.json.JSONArray;
import java.io.IOException;
import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class GalleryFragment extends Fragment {
private RecyclerView recyclerView;
private RecyclerView.Adapter TopCompleted;
private GalleryViewModel galleryViewModel;
private RecyclerView.LayoutManager layoutManager;
private ArrayList<Anime> Topcompleted = new ArrayList<>();
private ArrayList<Anime>ss=new ArrayList<>();
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_gallery, container, false);
int i=1;
final String url = "https://api.jikan.moe/v3/top/anime/"+i+"/airing";
OkHttpClient okHttpClient=new OkHttpClient();
final Request request = new Request.Builder()
.url(url)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
}
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
JsonArray features=((JsonObject) JsonParser.parseString(response.body().string())).getAsJsonArray("top");
Log.d("TRYYY", String.valueOf(features.size()));
for (int i=0;features.size()>i;i++){
JsonObject New=(JsonObject) features.get(i);
String a=new Gson().toJson(New);
Topcompleted.add(new Gson().fromJson(New,Anime.class));
}
}
});
Log.d("Tag" ,new Gson().toJson(Topcompleted.size()));
recyclerView = root.findViewById(R.id.TopCompletedAnime);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(),3));
TopCompleted = new MyAdapter(Topcompleted, GalleryFragment.this);
recyclerView.setAdapter(TopCompleted);
return root;
}
}
解决方案
推荐阅读
- javascript - RoR:接受文件上传和复制粘贴上传
- javascript - “集合之于数组,就像地图之于对象”是什么意思?
- jquery - 降低事件触发的频率
- python - 从网站中提取链接和项目名称并打印这些列表
- jmeter - 响应代码 400,503 有什么影响?如果我的主要关注点是测量 Web 应用程序的加载时间,我们可以忽略这些代码吗?
- python - 使用 pandas to_datetime 版本 0.23.4 获取今天的日期
- ssas - 是否可以从事实表中获取忽略子级值的层次结构父级成员的度量值?
- facebook - 我在哪里知道为什么在 Facebook 上限制我们的应用程序?
- java - 用空格分隔的 9 个唯一数字的正则表达式?
- database - 具有并发读写的一致性数据库