Pregunta

Estoy usando esta clase A que extiende otra clase abstracta (y esta clase abstracta extiende FragmentActivity) y en una de mis funciones con la clase A quiero obtener getActivity() para mi actividad A actual.Pero cada vez que uso getActivity, me da un error que indica que el método getActivity() no es un tipo definido para mi clase.Por favor, ayúdame !!¿¿Cómo puedo conseguir esto??

Código para mi clase 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 clase B

   public abstract class B extends FragmentActivity 
  {


   FragmentAdapter mAdapter;
   ViewPager mPager;
   PageIndicator mIndicator;


 }
¿Fue útil?

Solución

A FragmentActivity es una instancia de Activity (en estilo Java: FragmentActivity extends Activity).

Así que no tiene sentido llamar getActivity Porque un FragmentActivity ya es un Acivity, así que simplemente llamando/usando this trabajará.Además, no existe ningún método llamado getActivity en el FragmentActivity clase.En otras palabras, su clase B está ampliando una Activity instancia.

Entonces, dentro de tu clase A (o B), puedes usar este fragmento de código para obtener la instancia de actividad:

Activity test = (Activity) this;

Pero si tu clase B se extiende Fragment entonces el getActivity La llamada habría funcionado.

Otros consejos

FragmentActivity es una alternativa a Activity en paquete de soporte.desde tu class B se extiende FragmentActivity y luego tu class A se extiende class B, por lo tanto tu class A también se refiere Activity (también conocido como FragmentActivity).

En resumen, no es necesario llamar a ningún método.simplemente usa this palabra clave para referirse a su instancia de actividad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top