getActivity() con en FragmentActivity:androide
-
12-12-2019 - |
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;
}
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.