Domanda

Sto usando questa classe A che estende un'altra classe astratta (e questa classe astratta estende la frammentazione) e in una delle mie funzioni con una classe voglio ottenere la getettività () per la mia attività corrente A. Ma ogni volta che uso la gettattività, Mi dà errori che il metodo Getactivity () non è definito tipo per la mia classe.Mi aiuti per favore !!Come posso ottenere questo ??

Codice per la mia classe A

 public class A extends B
 {
  protected void onCreate(Bundle savedInstanceState) 
   {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.voicing);

    //doing another initializations and stuff//

   }
  }
.

Codice per classe B

   public abstract class B extends FragmentActivity 
  {


   FragmentAdapter mAdapter;
   ViewPager mPager;
   PageIndicator mIndicator;


 }
.

È stato utile?

Soluzione

A FragmentActivity è un'istanza di Activity (in stile Java: FragmentActivity extends Activity).

Quindi non vi è alcun punto chiamato getActivity perché un FragmentActivity è già un Acivity, quindi basta chiamare / usare this funzionerà.Inoltre non c'è metodo chiamato getActivity nella classe FragmentActivity.In altre parole la classe B sta estendendo un'istanza Activity.

Così all'interno della tua classe A (o B) è possibile utilizzare questo snippet di codice per ottenere l'istanza di attività:

Activity test = (Activity) this;
.

Ma se la classe B estende Fragment, la chiamata getActivity avrebbe funzionato.

Altri suggerimenti

FragmentActivity è un alternato al generatore di Activity in Pacchetto di supporto .Dal momento che il tuo class B si estende FragmentActivity e successivamente il class A estende class B, quindi il class A si riferisce anche Activity (A.k.a FragmentActivity).

In breve, non è necessario chiamare alcun metodo.Utilizzare semplicemente la parola chiave this per fare riferimento alla tua istanza di attività.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top