2015-05-27 82 views
0

您好新來的Android如何從意圖從活動到片段? 我知道,從片段這樣如何將意圖從活動傳遞到Android中的片段

Intent intent=new Intent(getActivity(),nextActivity.class) 
StartActivity(intent); 

活動,但我從活動到碎片想要的。

+0

意向意圖=新意圖(currentActivity,nextFragement.class) StartActivity(意向); –

+0

它不起作用@AnjaliTripathi –

+0

@AnjaliTripathi不適用於活動碎片。 –

回答

-1

在活動你的意圖

Bundle bundle = new Bundle(); 
bundle.putString("dataKey", "Value"); 
YourFragmentClass fragmentObject = new YourFragmentClass(); 
fragmentObject .setArguments(bundle); 
if(fragmentObject!=null){ 
     FragmentManager fm = getFragmentManager(); 
     fm.beginTransaction().add(R.id.container, fragmentObject).commit(); 
    } 

在片段的onCreateView方法設置數據就可以得到數據

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 

String activityData= getArguments().getString("dataKey"); 

return inflater.inflate(R.layout.fragment, container, false); 

}

0

目前我的工作片段。
使用此驗證碼。

Fragment fragment = new YourFragmentName(); 
if (fragment != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 
     } 

哪裏content_frame是

<FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
在主要佈局

3

無法意圖傳遞給片段,你可以做的就是讓你的數據在意向,並通過它到片段。推薦的方法是使用newInstance模式。 所以在片段,你也會有這樣的:

public static MyFragment newInstance(@NonNull final String someId) { 
     final MyFragment fragment = new ProfileFragment(); 
     final Bundle args = new Bundle(); 
     args.putString(Const.KEY_SOME_ID, someId); 

     fragment.setArguments(args); 

     return fragment; 
    } 

要創建當然,你會調用該方法的片段。

String id = getIntent().getStringExtra(Const.KEY_ID); 
MyFragment fragment = MyFragment.newInstance(id); 

,並訪問您需要的參數,以獲得片段內:

Bundle args = getArguments(); 
    if (args != null) { 
     myId = args.getString(Const.KEY_SOME_ID, ""); 
    } 
相關問題