#android #android-fragments
#Android #android-фрагменты
Вопрос:
Внутри моего проекта у меня есть фрагмент, который запускает фрагмент. Когда я впервые запускаю свое приложение и захожу в приложение, все работает очень хорошо. но когда я нажимаю клавишу возврата и возвращаюсь к первому фрагменту, а затем нажимаю и перехожу ко второму фрагменту.. Ну, все становится пустым!
Вот как я запускаю второй фрагмент из первого:
ft.addToBackStack(null);
ft.replace(R.id.content_frame, UDP);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
У меня есть ImageView во втором фрагменте, когда я запускаю его первым, он отлично работает, но во второй раз изображение ничего не отображает!
Вот код для второго фрагмента:
public UniversityImage newInstance() {
UniversityImage Instance = new UniversityImage();
return Instance;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View viewta = inflater.inflate(R.layout.universityimage, container,
false);
prefs = this.getSherlockActivity().getSharedPreferences(prefName,
Context.MODE_PRIVATE);
setRetainInstance(false);
uniiv = (ImageView) viewta.findViewById(R.id.ivUNI);
Log.e("Uni", prefs.getString("UniversityName", "LAU"));
ILoader.DisplayImage(c.getString(c
.getColumnIndex(UniversitiesDatabase.KEY_IMAGEURL)),uniiv);
return viewta;
}
}
Даже когда я впервые запускаю свой фрагмент, он регистрирует все, во второй раз он ничего не регистрирует! что я делаю не так? Спасибо, ребята
Комментарии:
1. Заставьте ваше действие запустить второй фрагмент вместо того, чтобы совершать FragmentTransaction внутри первого фрагмента.
2. @ILovemyPoncho Как я могу это сделать? можете ли вы предоставить его в качестве ответа? Спасибо!
3. Создайте метод в своей деятельности, который зафиксирует транзакцию фрагмента и вызовет ее из первого фрагмента. Здесь объясняется …> developer.android.com/training/basics/fragments /…
Ответ №1:
поместите этот код
prefs = this.getSherlockActivity().getSharedPreferences(prefName,
Context.MODE_PRIVATE);
setRetainInstance(false);
uniiv = (ImageView) viewta.findViewById(R.id.ivUNI);
Log.e("Uni", prefs.getString("UniversityName", "LAU"));
ILoader.DisplayImage(c.getString(c
.getColumnIndex(UniversitiesDatabase.KEY_IMAGEURL)),uniiv);
в
onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
prefs = this.getSherlockActivity().getSharedPreferences(prefName,
Context.MODE_PRIVATE);
uniiv = (ImageView) getView().findViewById(R.id.ivUNI);
Log.e("Uni", prefs.getString("UniversityName", "LAU"));
ILoader.DisplayImage(c.getString(c
.getColumnIndex(UniversitiesDatabase.KEY_IMAGEURL)),uniiv);
}
Комментарии:
1. Я все еще получаю тот же результат: (, в ImageView ничего не отображается:/ @Lena Bru