我有一个活动,用户按下按钮然后发送到片段,但我希望传递一个额外的片段使用:
活动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)
但它无法正常工作,我可以做些什么来传递和检索额外的?谢谢.
您需要使用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的附加内容一样,您可以根据需要向参数包添加任意数量的内容.希望这可以帮助!