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;


 }
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top