如何获得Recyclerview项目的所有Edittexts的总和?仅获取屏幕上可见的项目,而不是全部

时间:2016-11-11 06:09:13

标签: android view android-recyclerview recycler-adapter android-viewholder

我正在开发一个Android应用程序,其中我在Recyclerview的适配器行中编辑了文本。现在我想得到用户在活动中输入的这些编辑文本值的总和。我为此目的使用了以下代码:

PUB/SUB

现在的问题是,我只能查看屏幕上可见的项目,而不是全部。例如,如果我在Recyclerview中共有10个项目,并且屏幕上只显示3个项目,那么我只能获得屏幕上可见的3个项目的总和。

到目前为止,我已经使用其他选项来获取编辑文本:

 int count = listArray.size();
    int sum = 0;

    for (int i = 0; i < count; i++) {
        LinearLayout ll = (LinearLayout) mRv_products.getLayoutManager().findViewByPosition(i);
        if (ll != null) {
            Log.v("TAG", "Item considered:" + i);
            EditText t = (EditText) ll.findViewById(R.id.edt_quantity_ship_now);
            String amount = t.getText().toString().trim();
            if (!amount.isEmpty())
                sum += Float.parseFloat(amount);
        }
    }

mRv_products.findViewHolderForAdapterPosition(i);

2 个答案:

答案 0 :(得分:1)

首先在你的适配器类中创建一个字符串数组列表。

 private ArrayList<String> list;

在适配器构造函数中初始化此列表并创建其getter setter,然后在onBindViewHolder()方法中添加editext textchangelistener并在此侦听器中使用onchangedtext()方法添加以下代码

list.set(position,edittext.getText().toString);

现在,您可以通过getter获取所有edittext值,然后使用字符串构建器组合所有值。

答案 1 :(得分:0)

以下是我要做的事情:

  1. 我将为RecyclerView项目中的每个editText添加textWatcher。
  2. 然后将在recyclerView Item model
  3. 中声明一个变量
  4. 当editText中的任何文本发生更改时,将值存储在该项目模型中。
  5. 当需要计算总和时,迭代模型列表&amp;计算结果。
  6. 任何adapterView的recyclerView的主要主题是您的视图可能存在也可能不存在,但您的项目列表始终存在。所以,始终更新&amp;根据您的要求使用您的项目列表。它会对你有所帮助。

    希望它会对你有所帮助。提前谢谢。