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;


 }
Était-ce utile?

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é.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top