Мое приложение имеет довольно много отдельных пар «активность / фрагмент», и для большей части навигации использует универсальную кнопку «Назад» на Android. Эта кнопка работает нормально, за исключением того, что я пытаюсь вернуться из операции DetailView обратно в список результатов поиска.
Вот как выглядит код результатов поиска:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState) {
View v = inflater.inflate(R.layout.results_fragment, container, false);
ListView lv;
lv = (ListView)v.findViewById(R.id.listViewResults);
lv.setAdapter(SearchResultsAdapter);
lv.setEmptyView(v.findViewById(R.id.emptyElement));
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
ItemType selectedItem;
selectedItem = (ItemType)adapter.getItemAtPosition(position);
Intent i = new Intent(getActivity(), DetailViewActivity.class);
i.putExtra(DetailViewFragment.RESULT_ID, resultIdNumber);
startActivity(i);
}
});
// ... some other stuff
return v;
}
DetailView - это просто набор изображений и текста.
Поиск возвращает ожидаемые результаты, и при выборе элемента отображается правильный DetailViewFragment .
Кажется, это очень типичная архитектура, поэтому я не уверен, почему переход к странице результатов должен быть таким проблематичным. Я попытался установить точки останова, чтобы определить, перезапускается ли когда-либо активность результатов, но, очевидно, это не так.