2016-04-03 10 views
1

フラグメントを動的に作成したいです。したがって、ナビゲーションフラグメントアイテムをクリックすると、詳細フラグメントと通信するアクティビティでコールバック関数がトリガされます。ここで活動中のコールバック派閥がある:コールフラグメントメソッドですが、フラグメントが複雑に作成されていません

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を呼び出さなかった。したがって、エラーが発生します:

.... on a null object reference

この問題を解決する方法。前もって感謝します。

+1

の使用例をいくつか含まれていhttp://developer.android.com/reference/android/app/Fragment.htmlを訪問することができますか? – Pooya

+0

@Pooyaありがとう。 setArgumentsは動作します – sydridgm

+0

素晴らしい!明確化のための答えを追加しました – Pooya

答えて

1

FragmentのsetArguments(Bundle)関数を使用して、引数に引数を渡すことができます。

フラグメントを作成するときには、引数をsetArguments()で渡してから、フラグメント内でこのようにしてを呼び出すと、特定のフラグメントのライフサイクルがデータを使用できるようになるまで待つことはありません。詳細については

あなたはまた、これらの機能方法setArgumentsの使用方法についての

関連する問題