Retrofit, onResponse Methode funktioniert nicht

Im neu in Retrofit, versuchen Sie, Daten von einem Webserver zu erhalten, erstellen Sie Model, Interface, aber dies funktioniert immer noch nicht.Problem (vielleicht) in der Methode onResponse () Ich füge dieser Methode Log.d und Toast hinzu, aber ich sehe nicht Log und Toast beim Start meiner App. Warum funktioniert das nicht? Ich kann verstehen, wenn ich eine falsche Antwort oder etwas anderes erhalte, aber onResponse () funktioniert im Allgemeinen nicht, wie ich denke. Vielleicht funktioniert Toast nicht mit lauten Daten, aber Log.d muss ohne funktionieren, und Log.d hat keine Daten, nur Code der Antwort. Ich habe alle Abhängigkeiten hinzugefügt und versucht, dies wie in allen Tutorials zu tun. Was habe ich falsch gemacht und was kann ich tun, um das zu beheben? Und ich versuche auch, diese Daten an den Adapter zu senden, aber wenn ich die App starte, habe ich einen Fehler im Protokoll "RecyclerView: Kein Adapter angeschlossen; Überspringen des Layouts". Vielleicht ist es das gleiche Problem in der onResponse-Methode und wenn onResponse nicht funktioniert, funktioniert das Setzen des Adapters auf recyclerview nicht. Und die VideoApi-Klasse:

public interface VideoApi {

    @GET("/videos/featured")
    Call<List<Video>>getFeaturedVideo();
}

Videoklasse:

public class Video {

    @SerializedName("url")
    @Expose
    private String url;
    @SerializedName("title")
    @Expose
    private String title;
    @SerializedName("description")
    @Expose
    private String description;
    @SerializedName("score")
    @Expose
    private Integer score;

    /**
     *
     * @return
     * The url
     */
    public String getUrl() {
        return url;
    }

    /**
     *
     * @param url
     * The url
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     *
     * @return
     * The title
     */
    public String getTitle() {
        return title;
    }

    /**
     *
     * @param title
     * The title
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     *
     * @return
     * The description
     */
    public String getDescription() {
        return description;
    }

    /**
     *
     * @param description
     * The description
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     *
     * @return
     * The score
     */
    public Integer getScore() {
        return score;
    }

    /**
     *
     * @param score
     * The score
     */
    public void setScore(Integer score) {
        this.score = score;
    }

}

FeaturedFragment:

public class FeaturedFragment extends Fragment {
    RecyclerViewAdapter recyclerViewAdapter;
    public static final String ROOT_URL = "https://api.vid.me/";
    public List <Video> videos;
    RecyclerView recList;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_featured, container, false);
        recList = (RecyclerView) rootView.findViewById(R.id.cardList);
        recList.setHasFixedSize(true);
        LinearLayoutManager llm = new LinearLayoutManager(getActivity());
        llm.setOrientation(LinearLayoutManager.VERTICAL);
        recList.setLayoutManager(llm);
        try {
            getVideos();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return rootView;
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    }

    private void getVideos() throws IOException {
        Retrofit retrofitAdapter = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
                .baseUrl(ROOT_URL)
                .build();
        final VideoApi videoApi = retrofitAdapter.create(VideoApi.class);
Call<List<Video>> call = videoApi.getFeaturedVideo();
        call.enqueue(new Callback<List<Video>>() {
            @Override
            public void onResponse(Call<List<Video>> call, Response<List<Video>> response) {
                Log.d("MainActivity", "Status Code = " + response.code());
                videos.addAll(response.body());
                recyclerViewAdapter = new RecyclerViewAdapter(videos);
                String result = response.body().get(0).getTitle();
                Toast.makeText(getActivity(), result, Toast.LENGTH_SHORT).show();
                recList.setAdapter(recyclerViewAdapter);
            }

            @Override
            public void onFailure(Call<List<Video>> call, Throwable t) {

            }
        });

    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage