2017-02-21 55 views
0

我在android studio中有一些代碼。我想調用此活動:從片段卡住運行活動

public void addConversationFragmentStartCall(ArrayList<Integer> opponents, 
              QBRTCTypes.QBConferenceType qbConferenceType, Map<String, String> userInfo) { 
    QBRTCSession newSessionWithOpponents = rtcClient.createNewSessionWithOpponents(opponents, qbConferenceType); 
    SettingsUtil.setSettingsStrategy(opponents, getDefaultSharedPrefs(), this); 

    Log.d("Crash", "addConversationFragmentStartCall. Set session " + newSessionWithOpponents); 
    initCurrentSession(newSessionWithOpponents); 
    ConversationFragment fragment = ConversationFragment.newInstance(opponents, "jinkal", qbConferenceType, 
      userInfo, StartConversetionReason.OUTCOME_CALL_MADE, getCurrentSession().getSessionID()); 
    FragmentExecuotr.addFragment(getFragmentManager(), R.id.fragment_container, fragment, 
      CONVERSATION_CALL_FRAGMENT); 

    if (ringtonePlayer != null) { 
     ringtonePlayer = new RingtonePlayer(this, R.raw.beep); 
    } 
    ringtonePlayer.play(true); 
} 

我從片段與呼叫按鈕,點擊此代碼:

if (getActivity() != null) { 
      ((VideoCallActivity) getActivity()).addConversationFragmentStartCall(
        oponent, qbConferenceType, userInfo); 
       callStatus = 1; 
      } 

但被卡住,得到錯誤

java.lang.ClassCastException:COM。 going.pass.MainDrawerActivity不能轉換爲com.going.pass.activity.VideoCallActivity

我在片段代碼中使用此

類UberTripFragment擴展UberBaseFragment

其中UberBaseFragment包含此:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    activity = (MainDrawerActivity) getActivity(); 
    requestQueue = Volley.newRequestQueue(activity); 

} 

請幫助如何解決這個..

回答

0

的片段,其中這叫做:

if (getActivity() != null) 
{ 
     ((VideoCallActivity) getActivity()).addConversationFragmentStartCall(
       oponent, qbConferenceType, userInfo); 
      callStatus = 1; 
} 

附加到您的MainDrawerActivity,它必須連接到您的VideoCallActivity。

+0

那麼,如何從我的片段調用公共無效addConversationFragmentStartCall? – user2114764

+0

請再次幫助 – user2114764

+0

將您的片段添加到VideoCallActivity而不是MainDrawerActivity。 getActivity()返回包含片段的活動 – PrisonMike