2017-03-01 8 views
0

하위 항목 클릭에 잘못된 ID가 나타납니다.하위 항목에 대한 잘못된 ID 가져 오기

조각 클래스

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View itemView = inflater.inflate(R.layout.fragment_checklist_groups_description, container, false); 

     fragmentManager = getActivity().getSupportFragmentManager(); 
     mLinearListView = (LinearLayout) itemView.findViewById(R.id.linear_ListView); 

     //========================================================================= 

     for (int i = 0; i < 2; i++) { 
      V_ChecklistParentItemModel v_checklistParentItemModel = new V_ChecklistParentItemModel(); 
      v_checklistParentItemModel.setParentGroupID("" + (i + 1)); 
      v_checklistParentItemModel.setParentGroupName("Group Name " + i); 

      if (i == 0) { 
       v_checklistParentItemModel.setHasSubGroup(false); 

       ArrayList<V_ChecklistChildItemModel> tempV_checklistChildItemModelArrayList = new ArrayList<>(); 
       for (int j = 0; j < 3; j++) { 
        V_ChecklistChildItemModel v_checklistChildItemModel = new V_ChecklistChildItemModel(); 
        v_checklistChildItemModel.setChildItemQuestionID("" + (j + 1)); 
        v_checklistChildItemModel.setChildItemQuestionName("Description of Question " + (j + 1)); 
        v_checklistChildItemModel.setChildQuestionID("" + index); 
        index++; 

        tempV_checklistChildItemModelArrayList.add(v_checklistChildItemModel); 
       } 

       v_checklistParentItemModel.setV_checklistChildItemModelArrayList(tempV_checklistChildItemModelArrayList); 
      } else { 
       v_checklistParentItemModel.setHasSubGroup(true); 

       ArrayList<V_ChecklistSubGroupModel> tempV_checklistSubGroupModelArrayList = new ArrayList<>(); 
       for (int j = 0; j < 2; j++) { 
        V_ChecklistSubGroupModel v_checklistSubGroupModel = new V_ChecklistSubGroupModel(); 
        v_checklistSubGroupModel.setSubGroupID("" + (j + 1)); 

        if (j == 0) { 
         v_checklistSubGroupModel.setSubGroupName("Sub Group Name 2a"); 

         ArrayList<V_ChecklistChildItemModel> tempV_checklistChildItemModelArrayList = new ArrayList<>(); 
         for (int k = 0; k < 2; k++) { 
          V_ChecklistChildItemModel v_checklistChildItemModel = new V_ChecklistChildItemModel(); 
          v_checklistChildItemModel.setChildItemQuestionID("" + (k + 1)); 
          v_checklistChildItemModel.setChildItemQuestionName("Description of Question " + (k + 1)); 
          v_checklistChildItemModel.setChildQuestionID("" + index); 
          index++; 

          tempV_checklistChildItemModelArrayList.add(v_checklistChildItemModel); 
         } 

         v_checklistSubGroupModel.setV_checklistChildItemModelArrayList(tempV_checklistChildItemModelArrayList); 
        } else { 
         v_checklistSubGroupModel.setSubGroupName("Sub Group Name 2b"); 

         ArrayList<V_ChecklistChildItemModel> tempV_checklistChildItemModelArrayList = new ArrayList<>(); 
         for (int k = 0; k < 3; k++) { 
          V_ChecklistChildItemModel v_checklistChildItemModel = new V_ChecklistChildItemModel(); 
          v_checklistChildItemModel.setChildItemQuestionID("" + (k + 1)); 
          v_checklistChildItemModel.setChildItemQuestionName("Description of Question " + (k + 1)); 
          v_checklistChildItemModel.setChildQuestionID("" + index); 
          index++; 

          tempV_checklistChildItemModelArrayList.add(v_checklistChildItemModel); 
         } 

         v_checklistSubGroupModel.setV_checklistChildItemModelArrayList(tempV_checklistChildItemModelArrayList); 
        } 
        tempV_checklistSubGroupModelArrayList.add(v_checklistSubGroupModel); 
       } 
       v_checklistParentItemModel.setV_checklistSubGroupModelArrayList(tempV_checklistSubGroupModelArrayList); 
      } 
      v_checklistParentItemModelArrayList.add(v_checklistParentItemModel); 
     } 


     //========================================================================= 


     //Adds data into first row 
     for (int i = 0; i < v_checklistParentItemModelArrayList.size(); i++) { 
      Log.v("I : ", " " + i); 
      LayoutInflater listInflater = null; 
      listInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View mLinearView = listInflater.inflate(R.layout.custom_cardview_checklist_groups_description_main_parent_item, null); 

      final TextView mProductName = (TextView) mLinearView.findViewById(R.id.textViewName); 
      final RelativeLayout mImageArrowFirst = (RelativeLayout) mLinearView.findViewById(R.id.rlFirstArrow); 
      final LinearLayout mLinearScrollSecond = (LinearLayout) mLinearView.findViewById(R.id.linear_scroll); 

      //checkes if menu is already opened or not 
      if (isFirstViewClick == false) { 
       mLinearScrollSecond.setVisibility(View.GONE); 
       mImageArrowFirst.setBackgroundResource(R.drawable.next_disable_icon); 
      } else { 
       mLinearScrollSecond.setVisibility(View.VISIBLE); 
       mImageArrowFirst.setBackgroundResource(R.drawable.arw_down); 
      } 
      //Handles onclick effect on list item 
      mImageArrowFirst.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 
        if (isFirstViewClick == false) { 
         isFirstViewClick = true; 
         mImageArrowFirst.setBackgroundResource(R.drawable.arw_down); 
         mLinearScrollSecond.setVisibility(View.VISIBLE); 
        } else { 
         isFirstViewClick = false; 
         mImageArrowFirst.setBackgroundResource(R.drawable.next_disable_icon); 
         mLinearScrollSecond.setVisibility(View.GONE); 
        } 
        return false; 
       } 
      }); 

      final String name = v_checklistParentItemModelArrayList.get(i).getParentGroupName(); 
      mProductName.setText(name); 

      if (v_checklistParentItemModelArrayList.get(i).isHasSubGroup()) { 
       //Adds data into second row 
       for (int j = 0; j < v_checklistParentItemModelArrayList.get(i).getV_checklistSubGroupModelArrayList().size(); j++) { 
        Log.v("J : ", " " + j); 
        LayoutInflater inflater2 = null; 
        inflater2 = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        View mLinearView2 = inflater2.inflate(R.layout.custom_cardview_checklist_groups_description_child_parent_item, null); 

        TextView mSubItemName = (TextView) mLinearView2.findViewById(R.id.textViewTitle); 
        final RelativeLayout mLinearSecondArrow = (RelativeLayout) mLinearView2.findViewById(R.id.linearSecond); 
        final RelativeLayout mImageArrowSecond = (RelativeLayout) mLinearView2.findViewById(R.id.rlSecondArrow); 
        final LinearLayout mLinearScrollThird = (LinearLayout) mLinearView2.findViewById(R.id.linear_scroll_third); 
        final LinearLayout linearLayoutMain = (LinearLayout) mLinearView2.findViewById(R.id.llMain); 

        if (i == 0) { 
         mLinearSecondArrow.setBackgroundColor(getResources().getColor(R.color.main_parent)); 
         mImageArrowSecond.setVisibility(View.GONE); 
         linearLayoutMain.setPadding(20, 0, 0, 0); 
        } else { 
         mLinearSecondArrow.setBackgroundColor(getResources().getColor(R.color.child_parent)); 
         mImageArrowSecond.setVisibility(View.VISIBLE); 

         if (i == 1) { 
          linearLayoutMain.setPadding(20, 8, 0, 0); 
         } else { 
          linearLayoutMain.setPadding(15, 8, 0, 0); 
         } 
        } 

        //checkes if menu is already opened or not 
        if (isSecondViewClick == false) { 
         mLinearScrollThird.setVisibility(View.GONE); 
         mImageArrowSecond.setBackgroundResource(R.drawable.next_disable_icon); 
        } else { 
         mLinearScrollThird.setVisibility(View.VISIBLE); 
         mImageArrowSecond.setBackgroundResource(R.drawable.arw_down); 
        } 

        //Handles onclick effect on list item 
        if (i == 0) { 
         final int finalI1 = i; 
         final int finalJ1 = j; 
         mLinearSecondArrow.setOnTouchListener(new View.OnTouchListener() { 
          @Override 
          public boolean onTouch(View v, MotionEvent event) { 
           Bundle bundle = new Bundle(); 
           bundle.putString("groupName", v_checklistParentItemModelArrayList.get(finalI1).getParentGroupName()); 
           bundle.putInt("itemCount", 3); 
           bundle.putSerializable("alldata", checklist_groupNamePojoArrayList); 
           pageNumber = 0; 
           bundle.putInt("pageNumber", pageNumber); 

           ChecklistGroupsQuestionsMainDialogFragment checklistGroupsQuestionsMainDialogFragment = new ChecklistGroupsQuestionsMainDialogFragment(); 
           checklistGroupsQuestionsMainDialogFragment.setArguments(bundle); 
           checklistGroupsQuestionsMainDialogFragment.setTargetFragment(current, 101); 
           checklistGroupsQuestionsMainDialogFragment.show(fragmentManager, getResources().getString(R.string.sd_project_list_screen_name)); 

           return false; 
          } 
         }); 
        } else { 
         mImageArrowSecond.setOnTouchListener(new View.OnTouchListener() { 
          @Override 
          public boolean onTouch(View v, MotionEvent event) { 
           if (isSecondViewClick == false) { 
            isSecondViewClick = true; 
            mImageArrowSecond.setBackgroundResource(R.drawable.arw_down); 
            mLinearScrollThird.setVisibility(View.VISIBLE); 

           } else { 
            isSecondViewClick = false; 
            mImageArrowSecond.setBackgroundResource(R.drawable.next_disable_icon); 
            mLinearScrollThird.setVisibility(View.GONE); 
           } 
           return false; 
          } 
         }); 
        } 

        final String catName = v_checklistParentItemModelArrayList.get(i).getV_checklistSubGroupModelArrayList().get(j).getSubGroupName(); 
        mSubItemName.setText(catName); 
        //Adds items in subcategories 
        for (int k = 0; k < v_checklistParentItemModelArrayList.get(i).getV_checklistSubGroupModelArrayList().get(j).getV_checklistChildItemModelArrayList().size(); k++) { 
         Log.v("K : ", " " + k); 
         LayoutInflater inflater3 = null; 
         inflater3 = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         View mLinearView3 = inflater3.inflate(R.layout.custom_cardview_checklist_groups_description_child_item, null); 
         TextView mItemName = (TextView) mLinearView3.findViewById(R.id.textViewItemName); 
         final String itemName = v_checklistParentItemModelArrayList.get(i).getV_checklistSubGroupModelArrayList().get(j).getV_checklistChildItemModelArrayList().get(k).getChildItemQuestionName(); 
         mItemName.setText(itemName); 

         mLinearScrollThird.addView(mLinearView3); 

         final int finalI = i; 
         final int finalJ = j; 
         final int finalK = k; 
         mLinearScrollThird.setOnTouchListener(new View.OnTouchListener() { 
          @Override 
          public boolean onTouch(View v, MotionEvent event) { 
           Bundle bundle = new Bundle(); 
           bundle.putString("groupName", v_checklistParentItemModelArrayList.get(finalI).getParentGroupName()); 
           bundle.putInt("itemCount", v_checklistParentItemModelArrayList.get(finalI).getV_checklistSubGroupModelArrayList().get(finalJ).getV_checklistChildItemModelArrayList().size()); 
//       bundle.putSerializable("questionData", group2bQuestionList); 
           bundle.putSerializable("alldata", checklist_groupNamePojoArrayList); 
           pageNumber = finalI + finalJ + finalK + 1; 
           bundle.putInt("pageNumber", pageNumber); 

           Log.v("====ugugugu==", "===ijhbjhbjh==="); 
           Toast.makeText(getActivity(), "Page No. " + v_checklistParentItemModelArrayList.get(finalI).getV_checklistSubGroupModelArrayList().get(finalJ).getV_checklistChildItemModelArrayList().get(finalK).getChildQuestionID(), Toast.LENGTH_LONG).show(); 

           ChecklistGroupsQuestionsMainDialogFragment checklistGroupsQuestionsMainDialogFragment = new ChecklistGroupsQuestionsMainDialogFragment(); 
           checklistGroupsQuestionsMainDialogFragment.setArguments(bundle); 
           checklistGroupsQuestionsMainDialogFragment.setTargetFragment(current, 101); 
           checklistGroupsQuestionsMainDialogFragment.show(fragmentManager, getResources().getString(R.string.check_list_groups_question_screen_name)); 

           return false; 
          } 
         }); 
        } 
        mLinearScrollSecond.addView(mLinearView2); 
       } 
       mLinearListView.addView(mLinearView); 
      } else { 
       //Adds items in subcategories 
       for (int k = 0; k < v_checklistParentItemModelArrayList.get(i).getV_checklistChildItemModelArrayList().size(); k++) { 
        Log.v("K : ", " " + k); 
        LayoutInflater inflater3 = null; 
        inflater3 = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        View mLinearView3 = inflater3.inflate(R.layout.custom_cardview_checklist_groups_description_child_item, null); 
        final LinearLayout mLinearScrollThird = (LinearLayout) mLinearView3.findViewById(R.id.linear_scroll_third); 
        TextView mItemName = (TextView) mLinearView3.findViewById(R.id.textViewItemName); 
        final String itemName = v_checklistParentItemModelArrayList.get(i).getV_checklistChildItemModelArrayList().get(k).getChildItemQuestionName(); 
        mItemName.setText(itemName); 

        final int finalI = i; 
        final int finalK = k; 
        mLinearScrollThird.setOnTouchListener(new View.OnTouchListener() { 
         @Override 
         public boolean onTouch(View v, MotionEvent event) { 
          Bundle bundle = new Bundle(); 
          bundle.putString("groupName", v_checklistParentItemModelArrayList.get(finalI).getParentGroupName()); 
          bundle.putInt("itemCount", v_checklistParentItemModelArrayList.get(finalI).getV_checklistChildItemModelArrayList().size()); 
          bundle.putSerializable("alldata", checklist_groupNamePojoArrayList); 
          bundle.putInt("pageNumber", 1); 

          Toast.makeText(getActivity(), "Page No. " + v_checklistParentItemModelArrayList.get(finalI).getV_checklistChildItemModelArrayList().get(finalK).getChildQuestionID(), Toast.LENGTH_LONG).show(); 

          ChecklistGroupsQuestionsMainDialogFragment checklistGroupsQuestionsMainDialogFragment = new ChecklistGroupsQuestionsMainDialogFragment(); 
          checklistGroupsQuestionsMainDialogFragment.setArguments(bundle); 
          checklistGroupsQuestionsMainDialogFragment.setTargetFragment(current, 101); 
          checklistGroupsQuestionsMainDialogFragment.show(fragmentManager, getResources().getString(R.string.check_list_groups_question_screen_name)); 

          return false; 
         } 
        }); 

        mLinearScrollSecond.addView(mLinearView3); 
       } 
       mLinearListView.addView(mLinearView); 
      } 
     } 

     //============================================================================== 


     return itemView; 
    } 

내가 setChildQuestionID를 사용하여 자식 질문 ID를 할당(). 그룹 이름 0의 경우 각 하위 클릭에 대해 0, 1, 2가 표시됩니다. 그러나 그룹 이름 1의 경우 각 하위 항목 클릭에 대해 하위 그룹 이름 2a & 7에 대해 하위 그룹 이름 2b에 대해 4를 얻습니다. 이상적으로는 내가 설정 한 모든 것을 반환해야합니다.

답변

0

그룹 이름 1에서 하위 클릭에 대해 0, 1, 2를 얻고 싶습니까? 내가 알 수있는 한, 인덱스 값을 0으로 재설정해야합니다. 적어도, 당신은 가장 바깥의 for-loop 외부에서 index = 0을 정의했다고 가정하면 (코드에서 인덱스의 값을 어디에서 확인할 수 없는지). 현재 그룹 0에, 당신이 :

     for (int k = 0; k < 2; k++) { 
         V_ChecklistChildItemModel v_checklistChildItemModel = new V_ChecklistChildItemModel(); 
         v_checklistChildItemModel.setChildItemQuestionID("" + (k + 1)); 
         v_checklistChildItemModel.setChildItemQuestionName("Description of Question " + (k + 1)); 
         v_checklistChildItemModel.setChildQuestionID("" + index); 
         index++; 

인덱스가 시작하는 0 인 경우, 지수의 값은 당신이에 도착하면 당신은 너무 0으로 다시 설정하지 0보다 지금 더 큰 다음 순환에서 최상위 루프를 통과하면 index 값은 이미> 0입니다. 그룹 1에서 index = 0으로 다시 시작하려면 index 값을 0으로 다시 설정해야합니다.

즉, questionID에 대해 설정 한 것과 정확히 일치하는 값을 반환하고 있지만 설정하고 싶지 않은 숫자를 설정한다고 생각합니다.