2016-09-15 1 views
0

는 여러 개의 체크 박스 그룹이와 나는 (이 고유해야합니다 제공) 일부 배열 목록에서 선택 체크 박스 (들) 및 ID의 값을 저장안드로이드에 여러 체크 박스 그룹의 ID와 값을 얻는 방법?

예를 원하는 : -

screenshot with multiple checkbox group 독특한 방법 설정을 각 체크 박스 그룹에 값 등

이 체크 박스 타입의 내 ArrayList에있는 확인란하는

List<CheckBox> checkBoxList = new ArrayList<>(); 
try { 
        dataArrayListcheckbox = new ArrayList<String>(); 

        for (int j = 0; j < tagValueBeanList.size(); j++) { 

         checkBox = new CheckBox(this); 
         checkBox.setText(tagValueBeanList.get(j).getTag().toString()); 
         checkBox.setLayoutParams(spinnerParams); 
         checkBox.setId(Integer.parseInt(tagValueBeanList.get(j).getValue().toString())); 
         checkBox.setTextSize(25); 
         checkBox.setId(participantCount); 
         linearLayout.addView(checkBox); 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
          checkBox.setButtonTintList(ColorClass.colorStateList()); 
         } 
         final int finalJ = j; 
         checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
          @Override 
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
           if (isChecked) { 

            dataTag = buttonView.getText().toString().trim() + " | " + buttonView.getId(); 
            dataArrayListcheckbox.add(dataTag); 
            System.out.println("ID Selected: " + buttonView.getId()); 
            System.out.println("Text Selected: " + buttonView.getText().toString()); 
            checkBoxHashMap.put(buttonView.getId(), buttonView.getText().toString()); 
           } 
           if (!isChecked) { 
            try { 

             checkBoxHashMap.remove(buttonView.getId()); 
             for (int i = 0; dataArrayListcheckbox.size() > i; i++) { 
              System.out.println(buttonView.getText().toString() + ">>>>UUUUcheck" + dataArrayListcheckbox.get(i).toString()); 
              String tageValue = buttonView.getText().toString().trim(); 
              String tagID=String.valueOf(buttonView.getId()).trim(); 
              String arrayTagValue = dataArrayListcheckbox.get(i).toString(); 

              System.out.println(">>>true comatin>"); 

              String res12[] = arrayTagValue.split("\\|"); 
              String tag = "", value = ""; 
              for (int tagCount = 0; res12.length > tagCount; tagCount++) { 
               if (tagCount == 0) { 
                tag = res12[0].toString().trim(); 
               } else { 
                value = res12[1].toString().trim(); 
               } 
              } 

              if (tageValue.equalsIgnoreCase(tag) && tagID.equalsIgnoreCase(value)) { 
               System.out.println(">>>true comatin>" + dataArrayListcheckbox.size()); 
               System.out.println(tageValue + "conatain...." + tag); 
               dataArrayListcheckbox.remove(i); 
               System.out.println(">>>true comatin>" + dataArrayListcheckbox.size()); 

              } 

              for (int count = 0; count < dataArrayListcheckbox.size(); count++) { 
               System.out.println("" + dataArrayListcheckbox.get(count)); 
              } 
             } 
            } catch (Exception e) { 
             e.printStackTrace(); 
            } 
           } 

          } 
         }); 
        } 
       } catch (Exception e) { 
        e.printStackTrace(); 
       }  

각 체크 박스 그룹 w의 값을 얻는 방법 i 번째의 ID 감사

PS : - 내 나쁜 영어

답변

0

checkBox.setId 대신 checkBox.setId (있는 Integer.parseInt (tagValueBeanList.get (J) .getValue의 (J)의 toString() 죄송합니다.()))); 그러면 찾을 수 있습니다.

관련 문제