2016-05-16 92 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。