我创建了一个包含动态RecyclerView
字段的EditText
。编辑EditText
字段中的值时,我需要在单击按钮时保存它们。我正在使用recyclerView.getChildCount()
来获取每次都给出不同数字的子计数。
答案 0 :(得分:12)
RecyclerView执行其名称所指示的内容。它回收了视图。假设您有1000个条目的列表,但在任何给定时间,其中3-4个条目显示在屏幕上。 RecyclerView的适配器始终包含所有这些子节点,因此调用recyclerView.getAdapter().getItemCount();
将返回1000.
然而,RecyclerView仅保留一些显示的项目并且“显示”接近显示,因此recyclerView.getChildCount()
将返回较小且非常量的值。对于大多数应用程序,您应该使用适配器提供的方法。
答案 1 :(得分:4)
RecyclerView的孩子你的意思是行数?
然后我会建议调用适配器的方法。拨打:
recyclerView.getAdapter().getItemCount();
答案 2 :(得分:0)
getItemCount()
中有一个名为LayoutManager
的方法,它可以准确地返回您需要的内容。基本上它完成了其他答案中的建议。
答案 3 :(得分:0)
嘿,如果我正确理解了您的问题,则您正在尝试在单击按钮时检索EditText中的值。 如果您要从所有可见的视图持有者中检索,请执行此操作
View v;
int itemCount = recyclerview.getChildCount();
for(int i = 0; i < itemCount; i++){
v = recyclerview.getChildAt(i); /* assuming you have your EditText in a view group like LinearLayout*/
EditText et = v.findViewById(R.id.my_text);
String text = et.getText().toString()
// todo process text
}
答案 4 :(得分:0)
我想您正在使用LinearLayoutManager来显示列表。它有一个名为findViewByPosition的好方法,