如何在Android中将意图从活动传递到片段

Ash*_*hat 0 android android-fragments android-activity

您好Android新手如何将Activity从Activity赋予片段?我知道从Fragment到Activity就像这样

Intent intent=new Intent(getActivity(),nextActivity.class)
StartActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但我想从Activity to Fragment.

Cip*_*ian 5

您无法将意图传递给片段,您可以做的是获取意图中的数据并将其传递给片段.建议的方法是使用newInstance模式.所以在片段中你会有这个:

    public static MyFragment newInstance(@NonNull final String someId) {
        final MyFragment fragment = new ProfileFragment();
        final Bundle args = new Bundle();
        args.putString(Const.KEY_SOME_ID, someId);

        fragment.setArguments(args);

        return fragment;
    }
Run Code Online (Sandbox Code Playgroud)

要创建片段,您可以调用该方法.

String id = getIntent().getStringExtra(Const.KEY_ID);
MyFragment fragment = MyFragment.newInstance(id);
Run Code Online (Sandbox Code Playgroud)

并在需要从参数获取的片段内访问它:

    Bundle args = getArguments();
    if (args != null) {
        myId = args.getString(Const.KEY_SOME_ID, "");
    }
Run Code Online (Sandbox Code Playgroud)