2017-07-09 144 views
0

我是新來的xamarin android。我想從片段發送數據到MainActivity。 我搜索谷歌很多,他們幾乎都在Java。發送數據從片段到活動android c#

+0

此鏈接可以爲您解答https://developer.xamarin.com/recipes/android/other_ux/fragment/create_a_fragment/ –

+0

讓您的活動的一些靜態字段和方法,或利用其捆綁放一些臨時演員。 – user2912553

回答

1

您有幾種選擇:

  1. 訪問父活動。
    在活動類中創建一個名爲SetData(data)的函數。 您的fragmnet具有「Activity」屬性,因此轉換爲您的活動類型,然後使用您的數據調用setData函數。

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

  2. 使用SharedPreferences
    集(在片段):

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

    獲取(活性):

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

感謝您的回答,這是我想要的(: –

0

你可以通過使用代表:

定義委託在您的片段類

namespace Awesome.Android { 
    public class AwesomeFragment : Fragment { 

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

當你創建一個Framgent

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

之後,您在活動實施OnAwesomePress

private void OnAwesomePress (int number) { 

} 

現在你可以爲它分配,當你調用sendOnAwesomePressEvent在你的Fragment中,該事件將被傳遞給Activity。

sendOnAwesomePressEvent (10); 
相關問題