2016-11-28 2 views
-3

Ich möchte Daten von MainActivity passieren Ich verwende für meine AktionPassdaten von Aktivität fragmentieren aber immer null zurück

switch (txt.getText().toString()){ 

     case "Jumlah(Tinggi-Rendah)": 
     dialog.dismiss(); 
     cond = "desc"; 
     by = "jumlah"; 
     Log.e("By1 : ", ""+by); 
     Intent intent = new Intent("KEY"); 
     sendBroadcast(intent); 
     return; 

fragmentieren und das ist mein get String

public String getDataAkun(){ 

    return idakun; 
} 

public String getDataBy(){ 
    return by; 
} 

und das ist mein Skript in meinem Fragment

MainActivity activity = (MainActivity) getActivity(); 

    idakun = activity.getDataAkun(); 
    by = activity.getDataBy(); 

dies meine Sendung ist

private BroadcastReceiver updateProfileBroadcast = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     //Fire your event 
     list_transaksi(); 
     Toast.makeText(getContext(),"huft :"+by+" - "+idakun,Toast.LENGTH_LONG).show(); 
    } 
}; 

, wenn ich meine Aktion laufen nur „idakun“, die die Daten erhalten, aber „durch“ ist null

enter image description here im neuen auf Android-Programmierung Rückkehr so, wenn es irgendeine Hilfe bitte ...

+2

Sie erstellen das Fragment in der Aktivität richtig? Warum erstellen Sie kein Objekt in der Aktivität und rufen die Setter-Methode im Fragment auf, um Werte zwischen Aktivität und Fragment zu übergeben. – jgm

+0

Sie können vereinfachten Ansatz verwenden, um Daten zwischen Fragmenten und Aktivitäten zu senden –

+0

siehe http://stackoverflow.com/questions/12739909/send-data-from-activity-to-fragment-in-android –

Antwort

0

Um Daten von einer Aktivität an ein Fragment zu senden, erstellen Sie einfach ein Bundle und geben Sie die erforderlichen Parameter ein und legen Sie dieses Bundle in fragment.setArguments() fest, wenn Sie dieses Fragment anhängen oder ersetzen. Hier

ein Beispiel:

Bundle bundle = new Bundle(); 
bundle.putInt("Key", 2); 
Fragment frag = new YourFragment(); 
frag.setArguments(bundle); 
--> then add or replace fragment as you want. 

Update: in der onCreate() -Methode des Fragments unter Code setzen:

Bundle Bündel = getArguments(); int i = Bündel.getInt ("Schlüssel");

Immer noch nicht klar dann Kommentar unten.

+0

immer noch gleich Nullwert, danke für Ihre Hilfe btw – matin

+0

Aktualisierte Antwort kann Ihnen helfen. Bitte prüfe – Sangeeta