Android:跳过当前片段并加载下一个

时间:2017-03-23 05:56:20

标签: android android-fragments

我正在尝试在surveylib库(https://github.com/AndreiD/surveylib)中实现显示逻辑。这是一个实现调查应用程序的库。 JSON文件中将有一组问题和属性,此库根据JSON文件准备一组问题。

该库通过使用Fragments和ViewPager实现了调查应用程序。对于不同类型的问卷(例如片段文件夹)存在不同的片段。我想在这个库中加入显示逻辑,根据之前问题中收到的答案,可能无法显示某些问题。我在Questions.java中创建了变量(在模型文件夹中)。

我正在努力跳过片段并加载下一个片段。例如,我想在此FragmentCheckboxes.java文件中实现跳过路由。根据上一个问题的答案,可能不会显示带有复选框的此问题。到目前为止,我已添加此部分:

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {


        if (isVisibleToUser) {
            // called here
            Log.d("Checkbox Fragment: ", q_data.getQuestionNo() + " setUserVisibleHint");
            String display_logic=q_data.getDisplayLogic();

            String condition_question=display_logic.split(",")[0];
            String condition_value=display_logic.split(",")[1];
            String response=Answers.getInstance().get_answer(condition_question);
            Log.d("Display Logic", "Question: "+condition_question+", Condition _Value: "+ condition_value+", Response: "+response);
            if(response.equals(condition_value))
            {
                Log.d("Display Logic", "Skipping " + q_data.getQuestionNo());
                Answers.getInstance().put_answer(textview_q_title.getText().toString(), "N/A");
             //   getView().setVisibility(View.GONE);
                mContext=getActivity();
               ((SurveyActivity)mContext).go_to_next();

            }
            else
            {
                super.setUserVisibleHint(isVisibleToUser);
            }

        }
    }

go_to_next()函数在SurveyActivity.java中实现。我的问题是虽然它调用了go_to_next()函数,但这个片段仍然是可见的,当我点击下一步时它会跳过下一个我不想要的问题。我不想跳过当前的问题并加载下一个问题。更具体地说,让我们说我们有三个问题:Q1,Q2和Q3。 Q1是单选按钮,可以有两个响应:是和否。如果用户为Q1选择了yes,我们将跳过Q2并显示Q3。否则,Q1将在Q1之后显示。

在这种特殊情况下,如何跳过android中的片段并加载下一个片段?

1 个答案:

答案 0 :(得分:0)

1.首先,您需要在视图寻呼机适配器中获取片段的位置 2.然后在调用go_to_next()时传递片段的位置。 3.在viewpager活动中,你实现了接口方法调用viewPager.setCurrentItem(pos);或pos + x