2016-04-22 12 views
2

Im toget Video-URL versucht, Titel und Nummer oflike von vid.me API.I GET respone haben und führen Sie von https://api.vid.me/videos/featured sehe ich bauen Modell, API und kundenspezifische Adapter für recyclerview.In RecyclerView Ich möchte Video sehen, aber nicht Video, nur Schnappschuss oder etwas ähnliches. Aber wenn ich meine App starte, sehe ich eine schwarze Figur auf dem VideoView-Platz. Diese Figur hat unterschiedliche Größe, aber ihre schwarze Figur nicht wie Video und Felder für Titel und Punkte sind leer. Was muss ich tun, um Videobild in normales Video zu ändern und Daten beiden Textansichten zuzuordnen?Retrofit Antwort falsche Daten geben

Video class(POJO): 
public class Video { 

    @SerializedName("clip_url") 
    @Expose 
    private String clip_url; 
    @SerializedName("title") 
    @Expose 
    private String title; 
    @SerializedName("description") 
    @Expose 
    private String description; 
    @SerializedName("likes_count") 
    @Expose 
    private Integer likes_count; 

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

    /** 
    * 
    * @param clip_url 
    * The url 
    */ 
    public void setClip_url(String clip_url) { 
     this.clip_url = clip_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 likes_count; 
    } 

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

} 

RecyclerViewAdapter:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.VideoViewHolder> { 
    List<Video> call; 
    RecyclerViewAdapter(List<Video> call){ 
     this.call = call; 

    } 
    @Override 
    public VideoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view_row,parent,false); 
     VideoViewHolder videoViewHolder = new VideoViewHolder(v); 
     return videoViewHolder; 
    } 

    @Override 
    public void onBindViewHolder(VideoViewHolder holder, int position) { 
     String video_url = call.get(position).getClipUrl(); 
holder.videoView.setVideoURI(Uri.parse(video_url)); 

     holder.video_name.setText(call.get(position).getTitle()); 
     // holder.video_like.setText(call.get(position).getScore()); 
    } 

    @Override 
    public int getItemCount() { 
     return call.size(); 
    } 

    public class VideoViewHolder extends RecyclerView.ViewHolder { 
     CardView cardView; 
     VideoView videoView; 
     TextView video_name; 
     TextView video_like; 
     public VideoViewHolder(View itemView) { 
      super(itemView); 
      cardView = (CardView) itemView.findViewById(R.id.card_view); 
      videoView = (VideoView)itemView.findViewById(R.id.videoview); 
      video_name = (TextView) itemView.findViewById(R.id.Videoname_textView); 
      video_like = (TextView) itemView.findViewById(R.id.like_textview); 
     } 
    } 
} 

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<Videos> call = videoApi.getFeaturedVideo(); 
     call.enqueue(new Callback<Videos>() { 
      @Override 
      public void onResponse(Call<Videos> call, Response<Videos> response) { 
       Log.d("MainActivity", "Status Code = " + response.code()); 
       videos = response.body().videos; 
       recyclerViewAdapter = new RecyclerViewAdapter(videos); 


       recList.setAdapter(recyclerViewAdapter); 
      } 

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

      } 


     }); 
    } 

} 

Antwort

-2

Bitte dieses Tutorial folgen und lernen, wie Daten vom Server retrive. Stellen Sie sicher, dass Sie den gesamten Code verstehen. Dann komm her, wenn du weitere Fragen hast.

http://www.vogella.com/tutorials/Retrofit/article.html

+0

Ich brauche ein paar Daten von Videos object.Its Titeln, likes_count und vollständigem url.I bekommen verstehen nicht, wie ich diese Daten von object.I bekommen müssen meine API-Klasse und Modell ändern? Wie? –

+0

Ich habe meinen Kommentar –

+0

@alexeypolusov abgeschlossen * – k0sh