title: How to get data from Edit Text in a RecyclerView?
body: <p>I have recyclerview with edit text. Each row has a edit text. I am entering values in the edit text manually and after i enter values, I want to get those values in each and every row. I want to get those values to the main activity. There may be 10 to 20 rows in the recyclerview. I want to get all values in those edit texts.</p>
  
  <p>This is my Adapter</p>
  
  <pre><code>public class SelectItemAdapter extends RecyclerView.Adapter&lt;SelectItemAdapter.ItemHolder&gt; {
  
      private List&lt;String&gt; itemsName, itemsQty, itemsPCode, itemPlant;
      private OnItemClickListener onItemClickListener;
      private LayoutInflater layoutInflater;
  
      public SelectItemAdapter(Context context, String[] mDataset) {
          layoutInflater = LayoutInflater.from(context);
          itemsName = new ArrayList&lt;String&gt;();
          itemsQty = new ArrayList&lt;String&gt;();
          itemsPCode = new ArrayList&lt;String&gt;();
          itemPlant = new ArrayList&lt;String&gt;();
          this.mDataset = mDataset;
  
  
      }
  
  
      @Override
      public SelectItemAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
          View itemView = layoutInflater.inflate(R.layout.custom_row_selected_item, parent, false);
          return new ItemHolder(itemView, this);
      }
  
      @Override
      public void onBindViewHolder(SelectItemAdapter.ItemHolder holder, final int position) {
          holder.setItemName(itemsName.get(position));
          holder.setItemQty(itemsQty.get(position));
          holder.setItemPCode(itemsPCode.get(position));
          holder.setItemPlant(itemPlant.get(position));
  
      }
  
      @Override
      public int getItemViewType(int position) {
          return position;
      }
  
  
      @Override
      public int getItemCount() {
          return itemsName.size();
      }
  
      public Object getItemName(int position) {
          return itemsName.get(position);
      }
  
      public Object getItemPCode(int position) {
          return itemsPCode.get(position);
      }
  
      public Object getItemPlant(int position) {
          return itemPlant.get(position);
      }
  
  
      public void setOnItemClickListener(OnItemClickListener listener) {
          onItemClickListener = listener;
      }
  
      public OnItemClickListener getOnItemClickListener() {
          return onItemClickListener;
      }
  
  
      public interface OnItemClickListener {
          public void onItemClick(ItemHolder item, int position);
      }
  
      public void add(int location, String iName, String iQty, String iPCode, String iPlant) {
          itemsName.add(location, iName);
          itemsQty.add(location, iQty);
          itemsPCode.add(location, iPCode);
          itemPlant.add(location, iPlant);
          notifyItemInserted(location);
      }
  
      public void remove(int location) {
          if (location &gt;= itemsName.size())
              return;
  
          itemsName.remove(location);
          notifyItemRemoved(location);
      }
  
      public static class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  
          private SelectItemAdapter parent;
          TextView textItemName, txtPCode, txtAvailableQty, txtTempQty, txtPlant;
          Button bRemove;
          EditText numPicker;
  
          public ItemHolder(View itemView, SelectItemAdapter parent) {
              super(itemView);
              this.parent = parent;
              textItemName = (TextView) itemView.findViewById(R.id.txtProductName);
              txtAvailableQty = (TextView) itemView.findViewById(R.id.txtAvailbleQty);
              txtPCode = (TextView) itemView.findViewById(R.id.txtPCode);
              txtPlant = (TextView) itemView.findViewById(R.id.txtPlant);
              bRemove = (Button) itemView.findViewById(R.id.bRemove);
              numPicker = (EditText) itemView.findViewById(R.id.numberPicker);
              bRemove.setOnClickListener(this);
          }
  
          public void setItemName(CharSequence name) {
              textItemName.setText(name);
          }
  
          public void setItemQty(CharSequence name) {
              txtAvailableQty.setText(name);
          }
  
          public void setItemPCode(CharSequence name) {
              txtPCode.setText(name);
          }
  
          public void setItemPlant(CharSequence name) {
              txtPlant.setText(name);
          }
  
          public String getQtyNumber() {
              return numPicker.getText().toString();
          }
  
          public CharSequence getItemName() {
              return textItemName.getText();
          }
  
  
          public CharSequence getItemPCode() {
              return txtPCode.getText();
          }
  
          @Override
          public void onClick(View v) {
              final OnItemClickListener listener = parent.getOnItemClickListener();
              if (listener != null) {
                  listener.onItemClick(this, getPosition());
              }
          }
      }
  
  }
  </code></pre>
  
  <p>This is how i tried to get values. But it is not working</p>
  
  <pre><code>private String getNumPicNumber(int i) {
          if (myRecyclerView.findViewHolderForLayoutPosition(i) instanceof SelectItemAdapter.ItemHolder) {
              SelectItemAdapter.ItemHolder childHolder = (SelectItemAdapter.ItemHolder) myRecyclerView.findViewHolderForLayoutPosition(i);
              numberPickerNumber = childHolder.getQtyNumber();
          }
          return numberPickerNumber;
      }
  </code></pre>