Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 调用片段方法,但未完全准备片段_Android_Fragment - Fatal编程技术网

Android 调用片段方法,但未完全准备片段

Android 调用片段方法,但未完全准备片段,android,fragment,Android,Fragment,我想动态地创建片段。因此,当单击导航片段项时,它将触发活动中的回调函数以与细节片段通信。以下是活动中的回调阵营: public void getChatRoomId(long chatroom_id) { FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); MsgChatRoom msgChatRoom = new MsgChatRoom();

我想动态地创建片段。因此,当单击导航片段项时,它将触发活动中的回调函数以与细节片段通信。以下是活动中的回调阵营:

public void getChatRoomId(long chatroom_id) {
    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    MsgChatRoom msgChatRoom = new MsgChatRoom();

    ft.replace(R.id.activity_chat_MsgChatroom_container, msgChatRoom, "messages");
    ft.addToBackStack(null);
    ft.commit();

    msgChatRoom.startQuery(chatroom_id);
}
我可以调用startQuery方法,但在该方法中,我需要在
onCreateActivity()
中初始化一些参数。但是,在我调用
startQuery
时,片段没有调用
OncreateActivity
。因此将出现一个错误:

。。。。关于空对象引用


如何解决这个问题。提前感谢。

您可以使用fragment的
setArguments(Bundle)
函数将参数传递给片段

创建片段时,通过
setArguments()
传递参数,然后在片段中通过调用
getArguments()
检索参数,这样就不用等待特定片段的生命周期才能使用数据


有关更多信息,您可以访问其中包含两个使用这些函数的示例

如何使用setArguments?@Pooya谢谢。设置参数使它工作得很好!刚才补充了澄清的答案