将数据从活动传递到片段

时间:2018-02-17 16:25:50

标签: android xamarin xamarin.android

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

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

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

但它说我的片段不包含setArguments

的定义

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

编辑:

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

A(1,1,:)
A(1,2,:)
...
A(1,9,:)

2 个答案:

答案 0 :(得分:2)

在Android Fragment API的Xamarin / C#规范化中,// Eve ESI Swagger Codegen APIs import { ApiModule } from '../providers/ESISwagger'; import { HttpClientModule } from '@angular/common/http'; providers: [ ... ApiModule, HttpClientModule, HTTP, // Ioniic Native HTTP Plugin ... ] setArguments成为C#属性(getArguments):

Arguments

答案 1 :(得分:0)

使用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");

希望你能得到理想。