Android recyclerview子计数小于活动类中的arrayList大小

Android recyclerview子计数小于活动类中的arrayList大小,android,android-recyclerview,Android,Android Recyclerview,在我的活动课上,我得到了Recyclerview的孩子,比如: final int itemsCount = recly_list_lab.getChildCount(); 但它给了我7个项目的计数,但我有10个项目,然后如何在主要活动中获得10个项目 以下是获取recyclerView子项的my代码: final int itemsCount = recly_list_lab.getChildCount(); Log.e("itemsCount::",itemsCount+"")

在我的活动课上,我得到了Recyclerview的孩子,比如:

final int itemsCount = recly_list_lab.getChildCount();
但它给了我7个项目的计数,但我有10个项目,然后如何在主要活动中获得10个项目

以下是获取recyclerView子项的my代码:

  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();
        }
    }

}
final int itemscont=recly_list_lab.getChildCount();
Log.e(“itemsunt::”,itemsunt+“”);
如果(itemsCount!=0){
试一试{

对于(int i=0;i视图,recyler视图中的视图可能小于视图中的项目总数,因为视图将被回收和重用以显示多个项目


您可以使用adapter.getItemCount()方法了解recyler视图中将显示多少视图项。

并非所有适配器项都附加到父项。
getChildCount()
方法返回显示的视图数。如果您想获得适配器的项目数,必须查询适配器

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

但是考虑到您的代码,您只是错过了使用
RecyclerView
。您不应该直接访问回收器的子视图。您需要对其执行的所有操作都应该通过适配器和视图持有者来完成!

RecyclerView不会保存内存中所有列表项的视图,例如,在您的情况下,它只有-7。W当你滚动时,它会重复使用这7个视图来显示不同的项目。目的是提高渲染性能。

你能分享你的完整代码吗???@sumit你能给我你的电子邮件吗?你确定你有10个项目吗?@sumit是的,我的阵列中有10个项目。添加你的代码。谢谢你给我答案。但是如果我使用这种方法,那么我没有得到视图,它给了我一个错误null指针异常。我的代码是:我的适配器不是null