1

我怎么知道哪个选项卡在我的

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle 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在我无法获得活动标签位置的功能上。

我怎样才能完成这件事。??

4

1 回答 1

0

得到了解决方案 :) 通过使用 Bundle 和传递参数来获取当前位置。下面的示例代码..

@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;
    }
}
于 2012-11-01T12:11:26.610 回答