2016-09-20 2 views
0

Ich habe ein Fragment 'X', dessen Elternaktivität 'A' ist.Android Studio - Wie übergibt man den Kontextwert von einem Fragment an eine andere Aktivität?

Ich habe eine andere Aktivität 'B', die eine Methode 'getData()' enthält; Diese Aktivität hat auch einen eigenen parametrisierten Konstruktor, in dem das Objekt des Context an diesen Konstruktor übergeben wird.

Aktivität B: -

public class B 
{ 
    Context _context; 
    String val="XYZ"; 

    public B(Context context) 
    { 
    this._context = context; 
    //Rest of the code 
    } 
    public String getData() 
    { 
    return val; 
    } 
} 

mich Mein Programm erfordert getData() -Methode der Aktivität 'B' in Fragment 'X'

Fragment X zu nennen: -

public class X extends Fragment implements 
{ 
    String name; 

    Context context=getActivity().getApplicationContext(); 

    B obj1=new B(context); 
    //i have passed Context object from fragment X to Activity B 

    ButtonClickEvent(..) 
    { 
    name=obj1.getData(); 
    //Rest of the code 
    } 
} 

Das Problem tritt beim Start von Fragment X auf; der Fehler hängt mit dem Kontextobjekt zusammen, ich verstehe nicht, was genau das Problem ist; Vorschläge sind willkommen! Vielen Dank.

+0

Bitte den Fehler melden? Warum instanzieren Sie die Aktivität mit einem Konstruktor? Außerdem sollte es eine andere Möglichkeit geben, die Daten abzurufen, als eine neue Instanz der Aktivität zu erstellen und dann ihre Daten von einem Fragment abzurufen, das nicht an sie angehängt ist. Dies könnte später zu subtilen, aber tödlichen Fehlern führen, wenn Ihre App wächst. –

Antwort

2

Zwei wahrscheinlich Definitionen:

So ein constructor in Activity erstellen und getAcivity() es passieren Kontext zu erhalten.

Danke.

+0

Vielen Dank für Ihren Vorschlag! context = getActivity(). getApplicationContext(); Ich habe diese Anweisung in OnCreateView() geschrieben und es hat funktioniert! – sam88

Verwandte Themen