2017-07-09 6 views
0

Ich bin neu in Xamarin Android. Ich möchte Daten von Fragment zu MainActivity senden. Ich suchte Google viel fast alle von ihnen war in Java.Senden Sie Daten von Fragment zu Aktivität Android C#

+0

können Dieser Link Antwort für Sie https://developer.xamarin.com/recipes/android/other_ux/fragment/create_a_fragment/ –

+0

einige statische Felder und Methoden in Ihrer Tätigkeit oder ihre Bundle verwenden, um einige zu setzen Extras. – user2912553

Antwort

1

Sie haben einige Optionen:

  1. Zugriff auf die übergeordnete Aktivität.
    Erstellen Sie eine Funktion namens SetData (Daten) in Ihrer Aktivitätsklasse. Ihr fragmnet hat die Eigenschaft "Activity", also in Ihren Aktivitätstyp umgewandelt und rufen Sie dann die setData-Funktion mit Ihren Daten auf.

    ((ParentActivity) this.Activity) .SetData (Daten);

  2. Verwenden Sie die SharedPreferences
    Set (in-Fragment):

    ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(context); 
    ISharedPreferencesEditor editor = prefs.Edit(); 
    editor.PutString("my_data", "some_data"); 
    editor.Apply(); 
    

    Get (in Aktivität):

    ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences (context); 
    String myData = prefs.GetString ("my_data", ""); 
    
+0

danke für deine antwort, das ist was ich will (: –

0

Sie können das tun, indem Delegierten mit:

Definieren Sie die Delegierten in Ihrem Fragment Klasse

namespace Awesome.Android { 
    public class AwesomeFragment : Fragment { 

     public delegate void OnAwesomePress (int number); 
     public event OnAwesomePress sendOnAwesomePressEvent; 
    } 
} 

Sie können es zuweisen, wenn Sie ein Framgent

AwesomeFragment fragment = new AwesomeFragment(); 
fragment.OnAwesomePress += OnAwesomePress; 

Danach erstellen Sie OnAwesomePress in Ihrer Tätigkeit

private void OnAwesomePress (int number) { 

} 

Jetzt implementieren, wenn Sie anrufen sendOnAwesomePressEvent in Ihrem Fragment wird dieses Ereignis an Activity übergeben.

sendOnAwesomePressEvent (10); 
Verwandte Themen