CopyPastor

Detecting plagiarism made easy.

Score: 0.8079546093940735; Reported for: String similarity Open both answers

Possible Plagiarism

Plagiarized on 2018-01-16
by Bilal Ahmad

Original Post

Original - Posted on 2017-04-29
by Manthan Patel



            
Present in both answers; Present only in the new answer; Present only in the old answer;

Add EditTextListener in RecyclerView Adapter and implement TextWatcher in EditTextListener.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private String[] mDataset; public MyAdapter(String[] myDataset) { mDataset = myDataset; } @Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_edittext, parent, false); // pass MyCustomEditTextListener to viewholder in onCreateViewHolder // so that we don't have to do this expensive allocation in onBindViewHolder ViewHolder vh = new ViewHolder(v, new MyCustomEditTextListener()); return vh; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { // update MyCustomEditTextListener every time we bind a new item // so that it knows what item in mDataset to update holder.myCustomEditTextListener.updatePosition(holder.getAdapterPosition()); holder.mEditText.setText(mDataset[holder.getAdapterPosition()]); } @Override public int getItemCount() { return mDataset.length; } public static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case public EditText mEditText; public MyCustomEditTextListener myCustomEditTextListener; public ViewHolder(View v, MyCustomEditTextListener myCustomEditTextListener) { super(v); this.mEditText = (EditText) v.findViewById(R.id.editText); this.myCustomEditTextListener = myCustomEditTextListener; this.mEditText.addTextChangedListener(myCustomEditTextListener); } } // we make TextWatcher to be aware of the position it currently works with // this way, once a new item is attached in onBindViewHolder, it will // update current position MyCustomEditTextListener, reference to which is kept by ViewHolder private class MyCustomEditTextListener implements TextWatcher { private int position; public void updatePosition(int position) { this.position = position; } @Override public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { mDataset[position] = charSequence.toString(); } @Override public void afterTextChanged(Editable editable) { } } }
Values will be saved in String Array (mDataset)
Happy Coding.
You can need to save string in list or array(same size as your list) other wise take one field in your model to save value on edittext change listener and then get the value from list when you need
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private String[] mDataset;
public MyAdapter(String[] myDataset) { mDataset = myDataset; }
@Override public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_edittext, parent, false); // pass MyCustomEditTextListener to viewholder in onCreateViewHolder // so that we don't have to do this expensive allocation in onBindViewHolder ViewHolder vh = new ViewHolder(v, new MyCustomEditTextListener());
return vh; }
@Override public void onBindViewHolder(ViewHolder holder, final int position) { // update MyCustomEditTextListener every time we bind a new item // so that it knows what item in mDataset to update holder.myCustomEditTextListener.updatePosition(holder.getAdapterPosition()); holder.mEditText.setText(mDataset[holder.getAdapterPosition()]); }
@Override public int getItemCount() { return mDataset.length; }

public static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case public EditText mEditText; public MyCustomEditTextListener myCustomEditTextListener;
public ViewHolder(View v, MyCustomEditTextListener myCustomEditTextListener) { super(v);
this.mEditText = (EditText) v.findViewById(R.id.editText); this.myCustomEditTextListener = myCustomEditTextListener; this.mEditText.addTextChangedListener(myCustomEditTextListener); } }
// we make TextWatcher to be aware of the position it currently works with // this way, once a new item is attached in onBindViewHolder, it will // update current position MyCustomEditTextListener, reference to which is kept by ViewHolder private class MyCustomEditTextListener implements TextWatcher { private int position;
public void updatePosition(int position) { this.position = position; }
@Override public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { // no op }
@Override public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { mDataset[position] = charSequence.toString(); }
@Override public void afterTextChanged(Editable editable) { // no op } } }

        
Present in both answers; Present only in the new answer; Present only in the old answer;