2017-05-13 1 views
0

조각 사이에 데이터를 보내고 싶습니다. 첫 번째 조각 (이름은 FragmentTabs 임)은 견인 탭 (조각도 있음) FragTab1 및 FragTab2를 포함합니다.FragmentTabHost로 조각간에 데이터 보내기

FragmentTabs에서 :

내가 FragmentTabs와 FragTab1 사이에 데이터를 전송하려는

다음

내 코드입니다

mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost); 
    mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.contenttab); 

    mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("tab 1"), 
      fragment(id).getClass(), null); 

기능 조각 :

FragTab1에서
private Fragment fragment(String id){ 
    FragTab1 Ftab1 = new FragTab1(); 

    Bundle dataBndl = new Bundle(); 
    dataBndl.putString("id", id); 

    Ftab1.setArguments(dataBndl); 
    return Ftab1 ; 

} 

:

Bundle bndl = getArguments(); 
getId = bndl.getString("id"); 

오류는 마지막 문장에서 발생 :

String value = getArguments().getString("YourKey"); 

답변

0

사용 번들 당신을 위해 당신의 도움을 청합니다.

d를 mTabHost.addTab의 parametre 내 databundle를 추가합니다 :

mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost); 
mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.contenttab); 

Bundle dataBndl = new Bundle(); 
dataBndl.putString("id", id); 

mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("tab 1"), 
     FragTab1.class, bundle); 

FragTab1 클래스의 변화 없음

0

Navjot.jassal의 감사 : 새로운 조각의 onCreateView에서

YourNewFragment fragment = new YourNewFragment(); 
    Bundle args = new Bundle(); 
    args.putString("YourKey", "YourValue"); 
    fragment.setArguments(args); 
    getFragmentManager().beginTransaction().add(R.id.container, fragment).commit(); 

: 문자열을 보내 getId = bndl.getString("id");