2016-05-16 87 views
0

我正在将电影数据提供给我的电影列表。 我需要在我的DetailActivity中使用电影流派列表获取流派。需要通过改进提供来自themoviedb API的流派

以下是端点和文档。 http://docs.themoviedb.apiary.io/#reference/genres/genremovielist/get

我有正确的POJO和休息客户端接口,以及MainActivity我在那里调用RestAdapter。

问题是在我的DetailsActivity中。我有ListView的流派,我不知道如何setText数组并调用getGenres()。

谢谢。

贝娄是我的POJO模型类:

public class Genres {  

    private Integer id; 
    private String name; 

    /** 
    * 
    * @return 
    * The id 
    */ 
    public Integer getId() { 
     return id; 
    } 

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

    /** 
    * 
    * @return 
    * The name 
    */ 
    public String getName() { 
     return name; 
    } 

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

} 

这里是我的接口:

public interface MoviesApiService { 

**@GET("/genre/movie/list") 
void getGenreMovies (Callback<Genres> cb);** 

}

我在MainActivity称为Restadapter:

private void getGenres() { 
     RestAdapter.getMovieService().getGenreMovies(new Callback<Genres>() { 
      @Override 
      public void success(Genres genres, Response response) { 

      } 

      @Override 
      public void failure(RetrofitError error) { 
       error.printStackTrace(); 
      } 

     }); 
    } 

而且德泰lsActiviy:

private Movie mMovie; 
private Reviews mReviews; 
ImageView backdrop; 
ImageView poster; 
TextView title; 
TextView description; 
TextView releaseDate; 
TextView voteAverage; 
ListView genres; 
TextView author; 
TextView content; 




@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_movie_detail); 
    if (getIntent().hasExtra(EXTRA_MOVIE)) { 
     mMovie = getIntent().getParcelableExtra(EXTRA_MOVIE); 
    } else { 
     throw new IllegalArgumentException("Detail activity must receive a movie parcelable"); 
    } 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    CollapsingToolbarLayout toolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.toolbar_layout); 
    toolbarLayout.setTitle(mMovie.getTitle()); 



    backdrop = (ImageView) findViewById(R.id.backdrop); 
    title = (TextView) findViewById(R.id.movie_title); 
    description = (TextView) findViewById(R.id.movie_description); 

    releaseDate = (TextView) findViewById(R.id.movie_date); 
    voteAverage = (TextView) findViewById(R.id.movie_rating); 
    author = (TextView) findViewById(R.id.username_review); 
    content = (TextView) findViewById(R.id.review_comment); 
    **genres = (ListView) findViewById(R.id.genresArray);** 





      title.setText(mMovie.getTitle()); 
    description.setText(mMovie.getDescription()); 
    voteAverage.setText(mMovie.getVoteAverage()); 
    releaseDate.setText(mMovie.getReleaseDate()); 

回答

0

您需要提供更多关于您要完成的细节。 开始尝试获取您的流派类的实例。 然后从那里获取id或您需要的任何方法。 您需要创建一个自定义适配器并将从Genre类获得的名称传递给适配器。

0

问题是回调返回流派POJO。它是一个包含类型POJO的列表。 重命名流派 POJO到流派,你需要创建一个额外的POJO

public class Genres{ 
    public List<Genre> genres; 
} 

,并在你的成功的呼叫使用此代码段。

final List<Genre> resultGenres = response.body().genres; 

在那里你有你的返回流派,我想你会通过这个列表到DetailActivity。