2012-10-31 126 views
1

我怎麼能知道哪個選項卡是活躍在我的如何知道onCreateView函數中哪個選項卡處於活動狀態?

公共查看onCreateView(LayoutInflater吹氣,ViewGroup中容器,捆綁savedInstanceState)函數???

以下代碼僅用於第一次導航,但之後在每個標籤中顯示最後的佈局。

public final class RobozoxFragment extends Fragment { 
private static final String KEY_CONTENT = "RobozoxFragment:Content"; 
private static int currentPosition = 100; 
public static RobozoxFragment newInstance(String content,int position) { 
    currentPosition = position; 
    RobozoxFragment fragment = new RobozoxFragment(); 
    StringBuilder builder = new StringBuilder(); 
    for (int i = 0; i < 20; i++) { 
     builder.append(content).append(" "); 
    } 
    builder.deleteCharAt(builder.length() - 1); 
    fragment.mContent = builder.toString(); 
    return fragment; 
} 
@Override 

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

    View myFragmentView; 

    if(currentPosition == 1){ 
     myFragmentView = inflater.inflate(R.layout.first, container, false); 
    }else if(currentPosition == 2){ 
     myFragmentView = inflater.inflate(R.layout.second, container, false); 
    }else if(currentPosition == 3){ 

     myFragmentView = inflater.inflate(R.layout.third, container, false); 
    }else if(currentPosition == 4){ 
     myFragmentView = inflater.inflate(R.layout.fourth, container, false); 
    }else if(currentPosition ==5){ 
     myFragmentView = inflater.inflate(R.layout.fifth, container, false); 
    }else{ 
     myFragmentView = inflater.inflate(R.layout.activity_main, container, false); 
    } 
    return myFragmentView; 
} 

我認爲問題出在onCreateView函數,其中我無法獲得活動標籤的位置。

我怎樣才能完成這件事。

+0

BTW:在Java中有'switch/case'構造。熟悉它。 –

回答

1

得到解決方案:) 通過使用包和傳遞參數獲取當前位置。下面的示例代碼..

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView; 
    Bundle args = getArguments(); 
    int currentView = args.getInt(Constants.ARG_SECTION_NUMBER)-2; 

    if(currentView == 0){ 
     rootView = inflater.inflate(R.layout.lay1, container, false); 
    }else if(currentView == 1){ 
     rootView = inflater.inflate(R.layout.lay2, container, false); 
    }else { 
     rootView = inflater.inflate(R.layout.activity_main, container, false); 
    } 

    return rootView; 
} 


@Override 
public Fragment getItem(int i) { 
    switch (i) { 
    case 0: 
     // The first section of the app is the most interesting -- it offers 
     // a launchpad into the other demonstrations in this example 
     // application. 
     return new LaunchpadSectionFragment(); 

    default: 
     // The other sections of the app are dummy placeholders. 
     Fragment fragment = new RobozoxSectionFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(Constants.ARG_SECTION_NUMBER, i + 1); 
     fragment.setArguments(args); 
     return fragment; 
    } 
} 
相關問題