Come get i dati da Edit Text in un RecyclerView?

Ho recyclerview con il text di modifica. Ogni row ha un text di modifica. Entrando manualmente i valori nel text di modifica e dopo aver inserito i valori, desidero get quei valori in each row. Voglio get quei valori all'attività principale. Ci possono essere da 10 a 20 righe nel recyclerview. Voglio get tutti i valori in quei testi di modifica.

Questo è il mio adattatore

  • L'esecuzione di Android Lint ha riscontrato un ... Non riuscito. java.lang.NullPointerException
  • Android - EditText sulla notifica di stato
  • Dopo la pubblicazione di una nuova versione dell'applicazione android per lo stato di admob di Google, modificata intriggers e non vengono visualizzati gli annunci
  • Come posso fare Android Volley eseguire la richiesta HTTPS utilizzando un certificato auto-firmato da una CA non riconosciuta?
  • Come creare intestazioni di sezione appiccicose (come iOS) in Android?
  • Come posso manipolare l'anteprima della telecamera?
  • public class SelectItemAdapter extends RecyclerView.Adapter<SelectItemAdapter.ItemHolder> { private List<String> itemsName, itemsQty, itemsPCode, itemPlant; private OnItemClickListener onItemClickListener; private LayoutInflater layoutInflater; public SelectItemAdapter(Context context, String[] mDataset) { layoutInflater = LayoutInflater.from(context); itemsName = new ArrayList<String>(); itemsQty = new ArrayList<String>(); itemsPCode = new ArrayList<String>(); itemPlant = new ArrayList<String>(); 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 >= 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()); } } } } 

    Così ho cercato di get valori. ma non sta funzionando

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

  • Focus su EditText in una window di popup passa l'attività a dormire
  • Come fermare il thread asynctask in android?
  • Come compilare ffmpeg-2.2.2 sulle windows con cygwin e android ndk r9c
  • Dipaly farsi text in webview android (per i telefoni che non supportno farsi)
  • android Cursor a JSONArray
  • L'applicazione non verrà eseguita sul dispositivo: DELETE_FAILED_INTERNAL_ERROR?
  • 2 Solutions collect form web for “Come get i dati da Edit Text in un RecyclerView?”

    Non è necessario utilizzare tanti elenchi, basta creare una class che contenga tutti i dati di un singolo elemento, non è necessario alcun button, usa solo l'ascolto di cambiamento di text.

    codice di esempio

     public class RetItem { public String _itemName; public String _itemQty; public String _itemPcode; public String _itemPlant; } public class SelectItemAdapter extends RecyclerView.Adapter<SelectItemAdapter.ItemHolder> { private List<RetItem> _retData; public SelectItemAdapter(Context context, String[] mDataset) { layoutInflater = LayoutInflater.from(context); _retData = new ArrayList<RetItem>(mDataset.length); this.mDataset = mDataset; } @Override public void onBindViewHolder(SelectItemAdapter.ItemHolder holder, final int position) { holder.setItemName(itemsName.get(position)); holder.setItemName.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { _retData.get(position)._itemName = s.toString(); } }); holder.setItemQty(itemsQty.get(position)); holder.setItemQty.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { _retData.get(position)._itemQty = s.toString(); } }); holder.setItemPCode(itemsPCode.get(position)); holder.setItemPCode.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { _retData.get(position)._itemPcode = s.toString(); } }); holder.setItemPlant(itemPlant.get(position)); holder.setItemPlant.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { _retData.get(position)._itemPlant = s.toString(); } }); } public List<RetItem> retrieveData() { return _retData; } } 

    Per fare questo ci sono due modi: –

    1) Aggiungi button di salvataggio in each row di RecyclerView su questo tasto (onClick)

      @Override public void onClick(View v) { String ans = holher.numPicker.getText().toString(); // save ans to sharedpreferences or Database } 

    2) Aggiungere onTextChangedListener a EditText

     holher.mumPicker.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { String ans = holher.numPicker.getText().toString(); // save ans to sharedpreferences or Database } }); 

    Quindi nel tuo MainActivity.java i dati retrive da sharedpreferences o database

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.