我有一个活动,用户按下一个按钮,然后发送到一个片段,但我希望传递一个额外的片段使用:
活动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);
}
};
活动b正在加载片段(我希望在其中检索额外的“friendirowid”),
碎片:
@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");
}
}
但它不起作用,我能做什么来传递和检索额外的?谢谢。
最佳答案
您需要使用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();
然后,重写
onCreate()
的Fragment
方法并执行以下操作:Bundle args = getArguments();
String myString = args.getString("friendIdRowID");
与活动的附加功能一样,您可以向参数包中添加任意数量的内容。希望这有帮助!