it-swarm-pt.tech

Como obter a instância de fragmento da FragmentActivity?

Defino a exibição do conteúdo em FragmentActivity e a atividade criará a instância do fragmento para mim de acordo com o nome da classe especificado no arquivo de layout. Mas como posso obter essa instância de fragmento?

public class MyActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle extra) {
        super.onCreate(extra);
        setContentView(R.layout.page_fragment);
    }
}

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:id="@+id/pageview"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  Android:name="org.xi.Android.PageFragment" />
37
David S.

Você pode usar o uso findFragmentById em FragmentManager.

Como você está usando a biblioteca de Suporte (você está estendendo o FragmentActivity), pode usar:

getSupportFragmentManager().findFragmentById(R.id.pageview)

Se você não estiver usando a biblioteca de suporte (então você está no Honeycomb + e não deseja usar a biblioteca de suporte):

getFragmentManager().findFragmentById(R.id.pageview)

Por favor, considere que o uso da biblioteca de suporte é recomendado mesmo no Honeycomb +.

93
kingston

Para obter a instância do fragmento em uma classe que estende FragmentActivity:

MyclassFragment instanceFragment=
    (MyclassFragment)getSupportFragmentManager().findFragmentById(R.id.idFragment);

Para obter a instância do fragmento em uma classe que estende o Fragmento:

MyclassFragment instanceFragment =  
    (MyclassFragment)getFragmentManager().findFragmentById(R.id.idFragment);
37
Meriam