-1

Hi there I have this adapterclass which display editText in recyclerview it works fine, but what I want to do is to change list item position displayed by edit text, since am using an array it display the first item as "0", so how can I make it count from "1" so that it can make sense to me to prompt the user to feed is as "item 1" rather than start as "item 0". Also to hold information I used textwatcher.

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> 
{
    private LayoutInflater inflater;
    public static ArrayList<EditModel> editModelArrayList;


    public CustomAdapter(Context ctx, ArrayList<EditModel> editModelArrayList){

        inflater = LayoutInflater.from(ctx);
        this.editModelArrayList = editModelArrayList;
    }

    @Override
    public CustomAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = inflater.inflate(R.layout.rv_item, parent, false);
        MyViewHolder holder = new MyViewHolder(view);

        return holder;
    }

    @Override
    public void onBindViewHolder(final CustomAdapter.MyViewHolder holder, final int position) {
        holder.editText.setText(" Item  : "+editModelArrayList.get(position).getEditTextValue());

    }

    @Override
    public int getItemCount() {
        return editModelArrayList.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder
    {
        protected EditText editText;

        public MyViewHolder(View itemView) {
            super(itemView);

            editText = (EditText) itemView.findViewById(R.id.editid);
            editText.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }
                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                    editModelArrayList.get(getAdapterPosition()).setEditTextValue(editText.getText().toString());
                }
                @Override
                public void afterTextChanged(Editable editable) {
                    editModelArrayList.get(getAdapterPosition()).setEditTextValue(editText.getText().toString());
                }
            });

        }
    }
}
Saadi
  • 2,211
  • 4
  • 21
  • 50
F.joel
  • 133
  • 5
  • 14

1 Answers1

0
@Override
public void onBindViewHolder(final CustomAdapter.MyViewHolder holder, final 
int position) {
    holder.editText.setText(" Item  : "+ (Integer.parseInt(editModelArrayList.get(position))+1));

}
Khemraj Sharma
  • 57,232
  • 27
  • 203
  • 212