android从活动传递和检索额外的片段

use*_*401 2 android

我有一个活动,用户按下按钮然后发送到片段,但我希望传递一个额外的片段使用:

活动A(按钮在哪里):

public OnClickListener publish = new OnClickListener(){

       @Override
       public void onClick(View v) {


           Intent intent = new Intent(v.getContext(),ActivityB.class);
           intent.putExtra("friendIdRowID", rowID);
           startActivity(intent);


       }
   };
Run Code Online (Sandbox Code Playgroud)

活动B正在加载片段(我希望在其中检索额外的"friendIdRowID"),片段:

 @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.activity_main2, container, false);

            Bundle extras = getActivity().getIntent().getExtras();

        if (extras != null)
        {

            String myString = extras.getString("friendIdRowID");
}
        }
Run Code Online (Sandbox Code Playgroud)

但它无法正常工作,我可以做些什么来传递和检索额外的?谢谢.

Nat*_*ers 7

您需要使用setArguments()方法Fragment将信息传递到片段中.在创建片段的活动中,执行以下操作:

YourFragment f = new YourFragment();
Bundle args = new Bundle();
args.putString("friendIDRowID", getIntent().getExtras().getString("friendIDRowID"));
f.setArguments(args);
transaction.add(R.id.fragment_container, f, "tag").commit();
Run Code Online (Sandbox Code Playgroud)

然后,覆盖onCreate()您的方法Fragment并执行以下操作:

Bundle args = getArguments();
String myString = args.getString("friendIdRowID");
Run Code Online (Sandbox Code Playgroud)

与Activity的附加内容一样,您可以根据需要向参数包添加任意数量的内容.希望这可以帮助!