getActivity() avec FragmentActivity :Android
-
12-12-2019 - |
Question
J'utilise cette classe A qui étend une autre classe abstraite (et cette classe abstraite étend FragmentActivity) et dans l'une de mes fonctions avec la classe A, je souhaite obtenir getActivity() pour mon activité actuelle A.Mais chaque fois que j'utilise getActivity , cela me donne une erreur indiquant que la méthode getActivity() n'est pas un type défini pour ma classe.S'il vous plaît aidez-moi !!Comment puis-je atteindre cet objectif??
Code pour ma classe A
public class A extends B
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.voicing);
//doing another initializations and stuff//
}
}
code pour la classe B
public abstract class B extends FragmentActivity
{
FragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
}
La solution
UN FragmentActivity
est un exemple de Activity
(en style Java : FragmentActivity extends Activity
).
Donc ça ne sert à rien d'appeler getActivity
parce qu'un FragmentActivity
est déjà un Acivity
, donc il suffit d'appeler/d'utiliser this
marchera.De plus, il n'existe aucune méthode appelée getActivity
dans le FragmentActivity
classe.En d’autres termes, votre classe B étend un Activity
exemple.
Ainsi, dans votre classe A (ou B), vous pouvez utiliser cet extrait de code pour obtenir l'instance d'activité :
Activity test = (Activity) this;
Mais si ta classe B se prolonge Fragment
puis le getActivity
l'appel aurait fonctionné.
Autres conseils
FragmentActivity
est une alternative à Activity
dans forfait d'assistance.Depuis votre class B
s'étend FragmentActivity
et plus tard ton class A
s'étend class B
, donc votre class A
fait également référence Activity
(alias FragmentActivity
).
En bref, vous n’avez pas besoin d’appeler de méthode.utilisez simplement this
mot-clé pour faire référence à votre instance d'activité.