2016-08-30 130 views
-1

如何將我的活動中收到的Intent傳遞給片段? 我在這個活動中創建了一個新的Fragment,這個活動接收到一個新的Intent。將活動傳遞給片段

@Override 
public void onNewIntent(Intent intent){ 
    FragmentTransaction fragmentTransaction = this.getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.replace(R.id.frame_principale, new BumpFragment()); 
    fragmentTransaction.commit(); 
} 

然後,在片段I類有這個方法是由活動所收到的新的工作意向:

 private void searchForBump(){ 

       boolean inNoleggio = prefs.getBoolean(Keys.IN_NOLEGGIO, false); 

       if (!inNoleggio) { 

        Intent intent = this.getActivity().getIntent(); 
        if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { 
         Parcelable[] rawMessages = intent.getParcelabl 

    eArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); 
        NdefMessage message = (NdefMessage) rawMessages[0]; 
        String payload = new String(message.getRecords()[0].getPayload()); 
        String[] data = payload.split(":"); 
       //other stuff 
} 

這種方法被稱爲片段的在onStart和恢復方法。 這段代碼和邏輯是否正確?因爲測試應用程序,當意圖收到時什麼也沒有發生。當然,在應用程序的清單,我把意向過濾器的活動

回答

0

您可以通過片段的意圖值作爲參數

上的活動傳遞參數作爲捆綁 fragment.setargument(數據); 數據是包實例

在片段可以在片段與活動名稱的類型轉換檢索活動創建回調方法這樣的說法

訪問活動方法片段通過getActivity