Итак, у меня есть три вкладки, и на двух из этих вкладок я должен сделать переадресацию вызовов.В каком методе я должен делать перенастройку, если я использую вкладку с тремя вкладками?
Я пробовал методы вызова, которые имеют модификационные вызовы в методе onCreateView. В методе onResponse я попытался загрузить изображение через полученный URL. Но когда я отлаживаю свое приложение, onCreateView возвращает представление, даже до вызова функции onResponse.
В каком методе я должен сделать повторные вызовы в фрагменте?
public class Tab3Fragment extends Fragment {
private ImageView trailer_thumbnail;
private static final String preImgUrl = "http://img.youtube.com/vi/";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab3_fragment, container, false);
trailer_thumbnail = (ImageView) rootView.findViewById(R.id.trailer_thumbnail);
updateTrailer();
/*if(DetailsActivity.movieTrailerList.size() != 0)
Picasso.with(getContext()).load(preImgUrl + DetailsActivity.movieTrailerList.get(0).getKey() + "/default.jpg").
placeholder(R.mipmap.ic_launcher).
error(R.mipmap.ic_launcher).
into(trailer_thumbnail);*/
return rootView;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
private void updateTrailer(){
final ProgressDialog mProgressDialog = new ProgressDialog(getContext());
mProgressDialog.setIndeterminate(true);
mProgressDialog.setMessage("Loading...");
mProgressDialog.show();
Retrofit retrofit = new Retrofit.Builder().
baseUrl(MainActivity.baseUrl).
addConverterFactory(GsonConverterFactory.create()).
build();
final RequestInterface requestInterface = retrofit.create(RequestInterface.class);
Call<MovieTrailerResponse> call1 = requestInterface.getMovieTrailers(list.get(index).getId(), MainActivity.apiKEy);
call1.enqueue(new Callback<MovieTrailerResponse>() {
@Override
public void onResponse(Call<MovieTrailerResponse> call, Response<MovieTrailerResponse> response) {
if (mProgressDialog.isShowing())
mProgressDialog.dismiss();
List<MovieTrailer> movieTrailerList = response.body().getResults();
Log.i("trailer", preImgUrl + movieTrailerList.get(0).getKey() + "/default.jpg");
if (movieTrailerList.get(0).getSite() == "YouTube")
Picasso.with(getActivity()).load(preImgUrl + movieTrailerList.get(0).getKey() + "/default.jpg").
into(trailer_thumbnail);
}
@Override
public void onFailure(Call<MovieTrailerResponse> call, Throwable t) {
}
});
}
Это мой класс фрагмент tab3, когда я отладки приложения, onCreateView
вызывается еще до вкладки прицепов выбирают и вид возвращается, прежде чем вызов апи принимает данные. Поэтому я не могу загрузить изображение даже с помощью progressdialog. На самом деле индикатор прогресса отображается, когда я выбираю tab2.
Это зависит от вашего требования. 'Но когда я отлаживаю свое приложение, onCreateView возвращает представление, даже до того, как onResponse будет вызван'. В чем проблема? Что именно ты пытаешься сделать? – OBX
Я пытаюсь загрузить мое изображение с url (используя picasso), полученное от вызова api, поэтому onCreateView возвращает представление, даже до загрузки моего изображения – potter13