Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道onCreateView函数中哪个选项卡处于活动状态?_Android - Fatal编程技术网

Android 如何知道onCreateView函数中哪个选项卡处于活动状态?

Android 如何知道onCreateView函数中哪个选项卡处于活动状态?,android,Android,我如何知道我的系统中哪个选项卡处于活动状态 公共视图OnCreateViewLayoutFlater充气机、视图组容器、捆绑包保存状态函数 下面的代码只用于第一次导航,但之后在每个选项卡中显示最后一个布局 public final class RobozoxFragment extends Fragment { private static final String KEY_CONTENT = "RobozoxFragment:Content"; private static int curre

我如何知道我的系统中哪个选项卡处于活动状态

公共视图OnCreateViewLayoutFlater充气机、视图组容器、捆绑包保存状态函数

下面的代码只用于第一次导航,但之后在每个选项卡中显示最后一个布局

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函数中,我无法获取活动选项卡位置

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

找到了解决方案: 通过使用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;
    }
}
顺便说一句:Java中有switch/case结构。熟悉它。