В моем проекте я звоню по адресу themoviedb api и onResponse, я хочу поделиться списком с другими действиями. Когда я прохожу, я получаю нулевое значение из списка в других действиях.
Вот мой файл MainActivity.class: -
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intent = new Intent(this, SecondActivity.class);
fetchMovieTrailers(5);
startActivity(intent);
}
public void fetchMovieTrailers(int id){
final Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
MovieApiInterface apiInterface = retrofit
.create(MovieApiInterface.class);
Call<MovieTrailer> movieTrailerCall = apiInterface
.getListOfMovieTrailers(id, API_KEY);
movieTrailerCall.enqueue(new Callback<MovieTrailer>() {
@Override
public void onResponse(Call<MovieTrailer> call, Response<MovieTrailer> response) {
MovieTrailer movieTrailer = response.body();
List<MovieTrailer.ResultsBean> listOfMovies = movieTrailer.getResults();
ArrayList<String> trailerKeyList = new ArrayList<>();
for (int i=0; i<listOfMovies.size(); i++){
trailerKeyList.add(listOfMovies.get(i).getKey());
Log.d("Trailer Key : ", trailerKeyList.get(i)+"");
}
intent.putStringArrayListExtra("Trailer Keys", trailerKeyList);
}
@Override
public void onFailure(Call<MovieTrailer> call, Throwable t) {
t.printStackTrace();
}
});
}
Во втором действии: -
ArrayList<String> listOfTrailers = getIntent().getStringArrayListExtra("Trailers Key");
Log.d("Second Activity", listOfTrailers+""); // I am getting null here