2017-06-19 52 views
-1

在我的活動類,我得到孩子Recyclerview像:recyclerview孩子數比活動類的ArrayList尺寸

final int itemsCount = recly_list_lab.getChildCount(); 

,但它給了我7項計數,但我有10個項目,然後如何獲得10項在主要活動

這是我爲獲得子品種代碼爲recyclerView:

final int itemsCount = recly_list_lab.getChildCount(); 
    Log.e("itemsCount::",itemsCount+""); 
    if (itemsCount != 0) { 
     try { 

      for (int i = 0; i <itemsCount; i++) { 

       final View viewtestcategoryname = recly_list_lab.getChildAt(i); 
       AutoCompleteTextView autoctv_testcategory = (AutoCompleteTextView) viewtestcategoryname.findViewById(R.id.autoctv_testcategory); 
       String TestCategoryName = autoctv_testcategory.getText().toString(); 
       Log.e("TestCategoryname:",TestCategoryName); 

       AutofitRecyclerView grid_labreferal_checkboxes_test = (AutofitRecyclerView) viewtestcategoryname.findViewById(R.id.grid_labreferal_checkboxes_test); 
       final int itemcheckTestCount = grid_labreferal_checkboxes_test.getChildCount(); 
       Log.e("itemcheckTestCount:",itemcheckTestCount+""); 

       RecyclerView recly_testsubcategory = (RecyclerView) viewtestcategoryname.findViewById(R.id.recly_testsubcategory); 
       final int itemSubCategoryName = recly_testsubcategory.getChildCount(); 
       Log.e("itemSubCategoryName:",itemSubCategoryName+""); 


       for (int test_check = 0; test_check < itemcheckTestCount; test_check++) { 

        final View viewTestCheck = grid_labreferal_checkboxes_test.getChildAt(test_check); 
        CheckBox grid_labreferal_checkbox = (CheckBox) viewTestCheck.findViewById(R.id.grid_labreferal_checkbox); 
        TextView txt_item_id = (TextView) viewTestCheck.findViewById(R.id.txt_item_id); 
        if (grid_labreferal_checkbox.isChecked()) { 
         Log.e("%sgrid_lcheckbox", grid_labreferal_checkbox.getText().toString()); 


         if (txt_item_id != null && txt_item_id.getText().toString().trim().length() != 0) { 


         } 

        } 
       } 

       for (int subcatname = 0; subcatname< itemSubCategoryName; subcatname++){ 
        final View SubCategory = recly_testsubcategory.getChildAt(subcatname); 
        AutoCompleteTextView autoctv_testsubcategory = (AutoCompleteTextView) SubCategory.findViewById(R.id.autoctv_testsubcategory); 
        Log.e("subcategoryname::",autoctv_testsubcategory.getText().toString()); 
        AutofitRecyclerView grid_labreferal_checkboxes_subtest= (AutofitRecyclerView) SubCategory.findViewById(R.id.grid_labreferal_checkboxes_subtest); 
        final int itemcheckSubtestCount = grid_labreferal_checkboxes_subtest.getChildCount(); 
        Log.e("itemcheckTestCount:",itemcheckSubtestCount+""); 

        for (int test_check = 0; test_check < itemcheckSubtestCount; test_check++) { 
         // jsonObjectMulti = new JSONObject(); 
         final View viewTestCheck = grid_labreferal_checkboxes_subtest.getChildAt(test_check); 
         CheckBox grid_labreferal_checkbox = (CheckBox) viewTestCheck.findViewById(R.id.grid_labreferal_checkbox); 
         TextView txt_item_id = (TextView) viewTestCheck.findViewById(R.id.txt_item_id); 
         if (grid_labreferal_checkbox.isChecked()) { 
          Log.e("%sgrid_subtestcheckbox", grid_labreferal_checkbox.getText().toString()); 


          if (txt_item_id != null && txt_item_id.getText().toString().trim().length() != 0) { 
           //testUpload.put(txt_item_id.getText().toString().trim(), grid_labreferal_checkbox.getText().toString().trim()); 
          } 

         } 
        } 


       } 



      } 

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

} 
+0

你能分享你的完整代碼嗎? – sumit

+0

@sumit你可以PLZ給我你的電子郵件ID –

+0

你確定你有10個項目? –

回答

0

的recyler視圖中的觀點可能小於項目的視圖中總數爲查看無線網絡將被回收並重新使用以顯示多個項目。

您可以使用adapter.getItemCount()方法知道在recyler視圖內將顯示多少個視圖項目。

0

並非所有適配器項都附加到父項。 getChildCount()方法返回顯示的視圖數量。如果要獲取適配器的項目數,則必須查詢適配器。

final int itemsCount = recly_list_lab.getAdapter().getItemCount(); 

但考慮到你的代碼,你只是錯過-使用RecyclerView。你不應該直接訪問回收商的子視圖。你需要做的一切都應該通過適配器和視圖持有者!

+0

謝謝你給我答案。但如果我使用這種方法,那麼我沒有得到視圖,它給了我錯誤空指針異常。我的代碼是: –

+0

plz檢查我編輯的問題 –

+0

我的適配器不是null –