如何将数据从活动传递到片段

时间:2016-05-10 20:58:33

标签: android

在我的项目中,我必须在片段活动中传递一些数据。我怎么做 ?我试过这样的:

String json_string = "s";
Intent intent = new Intent(context, ShowMapFragement.class);
intent.putExtra("json_data", json_string);
context.startActivity(intent);

但是它没有正常工作。请帮帮我。

1 个答案:

答案 0 :(得分:1)

以下是将数据从活动传递到片段的一种方法:

在Fragment类中创建一个静态newInstance()方法:

public static MyFragment newInstance(String valueToPass) {
    MyFragment instance = new MyFragment();
    Bundle args = new Bundle();
    args.putString("key", valueToPass);
    instance.setArguments(args)
    return instance;
}

将Activity / Fragment中的数据传递给MyFragment,如下所示:

MyFragment myFragment = MyFragment.newInstance("Hello World");

然后你可以这样做来检索数据(Fragment.onCreate()之后的任何时间)

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       if (getArguments() != null) {
           String passedValue = getArguments().getString("key");
           // passedValue == "Hello World"
       }   
   }