2016-04-22 6 views
0

Altes Fragment.Wie erhält man Daten, wenn Daten vom alten Fragment zum neuen Fragment übertragen werden?

lst.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e) { 
    //var intent = new Intent (this, typeof(TracksByGenres)); 
    //intent.PutStringArrayListExtra ("keys", items); 
    //StartActivity (intent); 
    FragmentTransaction fragmentTx=this.FragmentManager.BeginTransaction(); 
    TracksByGenres fragTrack=new TracksByGenres(); 
    //get our item from listview 
    fragmentTx.Replace(Resource.Id.fragmentContainer,fragTrack,items[e.Position]);  fragmentTx.AddToBackStack(null); 
    fragmentTx.Commit(); 
}; 

New-Fragment (fragTrack)

public async override void OnActivityCreated(Bundle savedInstancesState) 
{ 
    //What can I write? I want to get value from items[e.position] from old fragment 
} 

Was Funktion ist Wert zu bekommen? Ich habe Suche auf Google aber dort keine Ergebnisse, wie ich hoffe.

+0

Haben Sie Daten während der Navigation zu übergeben wollen zweites Fragment? – Sreeraj

+0

Nein. Ich will nicht. fragment1 wird Daten an zweites Fragment übergeben (ich weiß, wie man Codes schreibt) zweites Fragment wird diese Daten bekommen. Ich will das. –

Antwort

0

ändern Sie bitte Ihr Fragment, das eine Methode hinzufügen, die Daten wie unten

akzeptiert Dies ist die erste Fragment aus dem Sie Daten übernehmen.

public class FirstFragment :Fragment { 
public string mData; 
public void AddData(string data) { 
mData=data; } 
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
// inflate layout and store in variable //you can use data here // myTextView.Text=mData; } } 

Dies ist das zweite Fragment, in dem Sie Daten senden

public class SecondFragment :Fragment { 
public string mData; 
public void AddData(string data) { 
mData=data; } 
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
// inflate layout and store in variable //you can use data here // myTextView.Text=mData; } } 

Jetzt können Sie Daten übergeben, während das Tun ersetzen unten

SecondFragment aDifferentDetailsFrag = new SecondFragment(); 

aDifferentDetailsFrag.AddData(firstFragment.mData); 
//firstFragment is the instance of FirstFragment from where you are navigating to the secondfragment 
// Replace the fragment that is in the View fragment_container (if applicable). 

fragmentTx.Replace(Resource.Id.fragment_container, aDifferentDetailsFrag); 
+0

Ich meine, wie erhalten Sie aifferentDetailsFrag in neues Fragment –

+0

Ihr Code übergeben Daten an neue Fragment. –

+0

Im neuen Fragment möchte ich den Wert von aDifferentDetailsFrag erhalten. –

Verwandte Themen