我正在尝试在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中的片段并加载下一个片段?
答案 0 :(得分:0)
1.首先,您需要在视图寻呼机适配器中获取片段的位置
2.然后在调用go_to_next()时传递片段的位置。
3.在viewpager活动中,你实现了接口方法调用viewPager.setCurrentItem(pos);
或pos + x