Getività () con nella frammentazione: Android
-
12-12-2019 - |
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;
}
. 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à.