如何将我的活动中收到的Intent传递给片段? 我在我的活动中有这个方法,当活动收到一个新的Intent时会创建一个新的Fragment。
@Override
public void onNewIntent(Intent intent){
FragmentTransaction fragmentTransaction = this.getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame_principale, new BumpFragment());
fragmentTransaction.commit();
}
然后,在片段类中,我有这个方法,它适用于活动收到的新Intent:
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
}
在fragment的onStart和Resume方法中调用此方法。 这段代码和逻辑是否正确?因为测试应用程序,当收到意图时没有任何反应。自然地,在应用程序的清单中,我为活动设置了intent-filter
答案 0 :(得分:0)
您可以将fragment中的intent值作为参数传递
on activity将参数作为bundle传递 fragment.setargument(data); data是一个包实例
在片段中,您可以在片段
中的活动创建的回调方法中检索此参数通过getActivity访问片段中的activity方法,并使用您的活动名称
的类型转换