Android: как управлять фрагментами в одном действии? - PullRequest
3 голосов
/ 15 ноября 2011

Интересно, могу ли я управлять фрагментами, такими как Activity.
Я реализовал функцию табуляции с фрагментом (на самом деле, я не смог получить результат от startActivityForResult, используя TabHost), и я хочу вызывать каждый фрагмент, когда вкладкавыбрал меню, сохранив свой предыдущий вид, как при использовании намерения с FLAG_ACTIVITY_REORDER_TO_FRONT.Всякий раз, когда я заменяю фрагмент, программа всегда создает новый фрагмент.
Есть идеи?
Заранее спасибо.

пс.Я пытался использовать savedInstanceState, но Bundle предоставляет только putInt, putString, putBundle и т. Д. Можно ли сохранить вид или другие объекты?

@ PatrickBoos Вот мой код.После объявления FragmentManager fm и FragmentTransaction ft,

AFragment fragment = AFragment.getInstance();
if (!fragment.isAdded())
    ft.replace(res, fragment, tag);
ft.commit();

и AFragment.newInstance () реализуется как,

AFragment mThis;
public static AFragment getInstance() {
    if (mThis == null)
        mThis = new AFragment();
    return mThis;
}

1 Ответ

4 голосов
/ 15 ноября 2011

Попробуйте использовать что-то похожее на код ниже для повторного использования фрагмента

ContactListFragment contactListFragment = 
     (ContactListFragment)getFragmentManager().findFragmentByTag("ContactList");
if(contactListFragment == null){
contactListFragment = new ContactListFragment();
}
ft.replace(R.id.fragment_container, contactListFragment,"ContactList";
ft.commit();    
...