从 Recyclerview 中包含的 editText 中获取文本

Getting text from inside editText that is contained in a Recyclerview

我有一个包含编辑文本的 Recyclerview,当在 RecyclerView 外部按下按钮时,我想从 RecyclerView 内部的每个视图中检索文本。但是我似乎找不到最好的方法。我尝试过使用回调,也尝试过使用外部 class 来存储数据,但这两种方式似乎都应该有效,但都不太顺利。从每个 edittext 单独获取文本以便将其添加到数组或数据库中的最佳做法是什么。

您可以通过以下方式检索项目:

ArrayList<String> list = new ArrayList<>(); //this list will hold the Strings from the adapter Views
for (int i = 0 ; i < yourRecycle.getChildCount(); i++){
        list.add(((EditText)yourRecycle.getChildAt(i)).getText().toString());
}

回收视图,列表视图等,有视图回收机制,减少内存消耗。

因此,简单地遍历回收视图子项不会为您提供全部数据。

例如,如果回收视图中有 10 个项目并且屏幕上显示了 5 个项目,那么如果您继续遍历回收视图的子项,您将只会获得与几个子项相关的数据,比如 6 个或7. 因为对于其他人来说视图将被重用。

因此,在您的情况下,您需要做的是在回收视图适配器中重用视图时将数据从 edittext 保存到模型或 bean class。单击按钮时,您可以遍历子项并获取数据并将该数据再次放入模型或 bean class。然后从bean列表中你可以得到整个编辑的数据。