2017-03-23 3 views
0

surveylibライブラリ(https://github.com/AndreiD/surveylib)に表示ロジックを実装しようとしています。これはアンケートアプリを実装するライブラリです。 JSONファイルには一連の質問とプロパティがあり、このライブラリはJSONファイルに応じて一連の質問を作成します。Android:現在のフラグメントと読み込みをスキップする

このライブラリは、フラグメントとViewPagerを使用して調査アプリを実施しました。アンケートの種類ごとに異なる断片があります(フラグメントフォルダなど)。このライブラリに表示ロジックを組み込みたいのですが、以前の質問で受けた回答によっては表示されない質問がいくつかあります。 Question.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という3つの質問があるとします。 Q1はラジオボタンであり、はいといいえの2つの応答を持つことができます。ユーザがQ1に対してyesを選択した場合、Q2をスキップしてQ3を表示します。それ以外の場合は、Q1の後にQ2が表示されます。

この特定のケースでは、どのようにしてアンドロイドの断片をスキップして次のものを読み込むことができますか?

答えて

0

1.最初に、ビューページャアダプタ でフラグメントの位置を取得する必要があります。2.次に、go_to_next()を呼び出してフラグメントの位置を渡します。 3. viewpagerアクティビティで、uがインターフェイスメソッド呼び出しを実装した場合viewPager.setCurrentItem(pos);またはpos + x

関連する問題