繁体   English   中英

将数据从活动传递到片段

[英]Passing data from an activity to a fragment

我一直在研究有关如何传递数据的各种示例,它们都具有类似的结构

Bundle bundle = new Bundle();
bundle.putString("params", "My String data");
MyFragment frag= new MyFragment();
frag.setArguments(bundle);

但是它说我的片段不包含setArguments的定义

我在这里做错了什么? 还有另一种传递数据的方法吗?

编辑:

当我运行这段代码时,它说捆绑包为空

Bundle bundle = this.Arguments;
        if (bundle != null)
        {

            string FirstName = bundle.GetString("FirstName");
            Toast.MakeText(this.Activity, "Yay it Worked", ToastLength.Short).Show();
        }

在Android Fragment API的Xamarin / C#规范化中, setArgumentsgetArguments成为C#属性( Arguments ):

frag.Arguments = bundle;

使用newInstance()设计:

    public class YourFragment extends Fragment {
        public static BlankFragment newInstance(String param1, String param2) {
            BlankFragment fragment = new BlankFragment();
            Bundle args = new Bundle();
            args.putString("param1", param1);
            args.putString("param2", param2);
            fragment.setArguments(args);
            return fragment;
        }
    }

然后在您的活动中:

   YourFragment frag = YouFragment.newInstance("a", "b");

希望你能得到想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM