将数据从片段发送到活动android C#

时间:2017-07-09 05:34:44

标签: c# android android-fragments android-activity xamarin

我是xamarin android的新手。我想将数据从片段发送到MainActivity。 我搜索谷歌很多,几乎所有人都是用Java。

2 个答案:

答案 0 :(得分:1)

你几乎没有选择:

  1. 访问父活动 在您的活动类中创建一个名为SetData(data)的函数。 您的fragmnet具有“Activity”属性,因此强制转换为您的活动类型,然后使用您的数据调用setData函数。

    ((ParentActivity)this.Activity).SetData(数据);

  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", "");
    

答案 1 :(得分:0)

您可以使用代理人执行此操作:

在Fragment类中定义委托

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时,该事件将被传递给Activity。

sendOnAwesomePressEvent (10);