2016-08-17 60 views
2

我想從活動發送數據到片段,但在我提交的片段數據中爲null。我不知道爲什麼。這是我發送數據並調用片段時的代碼。發送數據從活動到片段android studio

String b = "hahhaha"; 
Bundle bundle = new Bundle(); 
bundle.putString("coba" ,b); 
bundle.putSerializable("modelassign" ,modelAssign); 

// set Fragmentclass Arguments 
ViewTaskFragment vtf = new ViewTaskFragment(); 
vtf.setArguments(bundle); 

//call fragment 
FragmentTransaction transact=getSupportFragmentManager().beginTransaction(); 
transact.add(R.id.content_frame, new ViewTaskFragment(), "viewtaskfragment"); 
transact.commit(); 

,這是代碼,當我檢索數據被髮送:

modelAssign = (ModelAssign) this.getArguments().getSerializable("modelassign"); 
String haha = this.getArguments().getString("coba"); 

誰能幫助?

回答

1

while ad在片段到事務處理中,您正在創建ViewTaskFragment()的新實例,請使用已存儲包的已創建對象。

transact.add(R.id.content_frame, vtf , "viewtaskfragment"); 
+0

WAW ..它是非常有幫助謝謝 –

1

你傳遞的參數打包成Fragment

ViewTaskFragment vtf = new ViewTaskFragment(); 
vtf.setArguments(bundle); 

但隨後開創了交易新Fragment

transact.add(R.id.content_frame, new ViewTaskFragment(), "viewtaskfragment"); 

使用您之前所創建的Fragment包含參數:

transact.add(R.id.content_frame, vtf, "viewtaskfragment"); 
0

更改此

transact.add(R.id.content_frame, new ViewTaskFragment(), "viewtaskfragment"); 

transact.add(R.id.content_frame, vtf, "viewtaskfragment");