2016-11-28 3 views
-3

Je veux transmettre des données de MainActivity à fragmenter j'utilise ceci pour mon actiondonnées passe de l'activité au fragment, mais toujours retourner null

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; 

et voici mon get chaîne

public String getDataAkun(){ 

    return idakun; 
} 

public String getDataBy(){ 
    return by; 
} 

et ceci est mon script dans mon fragment

MainActivity activity = (MainActivity) getActivity(); 

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

c'est mon émission

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(); 
    } 
}; 

quand je lance mon action juste « idakun » qui obtiennent les données mais « par » est de retour nul

enter image description here im nouveau sur la programmation Android, donc s'il y a une aide s'il vous plaît ...

+2

Vous créez le fragment dans l'activité, n'est-ce pas? Pourquoi ne pas créer un objet dans l'activité et appeler la méthode setter dans le fragment pour passer des valeurs entre l'activité et le fragment. – jgm

+0

Vous pouvez utiliser une approche plus simple pour envoyer des données entre les fragments et les activités –

+0

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

Répondre

0

Pour envoyer des données d'une activité à un fragment, il suffit de créer un bundle et de mettre les paramètres requis dans celui-ci et de définir ce bundle dans fragment.setArguments() lorsque vous attachez ou remplacez ce fragment.

Voici un exemple:

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

Mise à jour: dans la méthode onCreate() de votre fragment mis ci-dessous le code:

bundle Bundle = GetArguments(); int i = bundle.getInt ("clé");

Toujours pas clair puis commentaire ci-dessous.

+0

toujours la même valeur nulle, merci pour votre aide btw – matin

+0

La réponse mise à jour peut vous aider. Vérifiez s'il vous plaît – Sangeeta