getActivity() com FragmentActivity:andróide
-
12-12-2019 - |
Pergunta
Estou usando esta classe A que estende outra classe abstrata (e esta classe abstrata estende FragmentActivity) e em uma de minhas funções na classe A eu quero obter getActivity() para minha atividade atual A.Mas sempre que uso getActivity, recebo um erro de que o método getActivity() não é um tipo definido para minha classe.Por favor me ajude !!Como posso conseguir isso?
Código para minha classe A
public class A extends B
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.voicing);
//doing another initializations and stuff//
}
}
código para classe B
public abstract class B extends FragmentActivity
{
FragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
}
Solução
A FragmentActivity
é um exemplo de Activity
(no estilo Java: FragmentActivity extends Activity
).
Então não adianta ligar getActivity
porque um FragmentActivity
já é um Acivity
, então basta ligar/usar this
vai funcionar.Também não existe nenhum método chamado getActivity
no FragmentActivity
aula.Em outras palavras, sua classe B está estendendo um Activity
instância.
Portanto, dentro da sua classe A (ou B), você poderia usar este trecho de código para obter a instância da atividade:
Activity test = (Activity) this;
Mas se a sua classe B se estender Fragment
então o getActivity
chamada teria funcionado.
Outras dicas
FragmentActivity
é uma alternativa para Activity
em pacote de suporte.Desde o seu class B
estende FragmentActivity
e mais tarde seu class A
estende class B
, portanto seu class A
também está se referindo Activity
(também conhecido como FragmentActivity
).
Resumindo, você não precisa chamar nenhum método.simplesmente use this
palavra-chave para se referir à sua instância de atividade.