如何返回ok http中的最高完成值以在回收视图中使用它 请注意,当我使用log.d在ok http方法中检查其值时,该值不为null,但是当我尝试将其显示在该方法中时,其值为null,因此如何解决此问题以及如何返回Array in避免 请注意,我是零碎工作
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;
}
}