2016-08-30 119 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