Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从片段发送到活动android C#_C#_Android_Android Fragments_Android Activity_Xamarin - Fatal编程技术网

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

将数据从片段发送到活动android C#,c#,android,android-fragments,android-activity,xamarin,C#,Android,Android Fragments,Android Activity,Xamarin,我是xamarin android的新手。我想将数据从片段发送到MainActivity。 我在谷歌搜索了很多次,几乎所有的搜索都是用Java进行的。你几乎没有选择: 访问父活动。 在活动类中创建名为SetData(data)的函数。 fragmnet具有“Activity”属性,因此转换为Activity类型,然后使用数据调用setData函数 ((ParentActivity)this.Activity).SetData(data) 使用共享参考资料 集合(以片段形式): 获取(在活动中):

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

你几乎没有选择:

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

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

  • 使用共享参考资料
    集合(以片段形式):

    获取(在活动中):


  • 您可以通过使用代理来实现这一点:

    在片段类中定义委托

    namespace Awesome.Android {
         public class AwesomeFragment : Fragment {
    
           public delegate void OnAwesomePress (int number);
           public event OnAwesomePress sendOnAwesomePressEvent;
         }
    }
    
    可以在创建框架时指定它

    AwesomeFragment fragment = new AwesomeFragment ();
    fragment.OnAwesomePress += OnAwesomePress;
    
    之后,在活动中实现OnWesomePress

    private void OnAwesomePress (int number) {
    
    }
    
    现在,当您在片段中调用
    sendOnAwesomePressEvent
    时,该事件将传递给Activity

    sendOnAwesomePressEvent (10);
    

    这个链接可以帮助您在活动中创建一些静态字段和方法,或者使用它的包添加一些额外内容。
    private void OnAwesomePress (int number) {
    
    }
    
    sendOnAwesomePressEvent (10);