首页 > 解决方案 > 如何在 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;

    }

}

标签: java

解决方案


推荐阅读