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