Привет, у меня есть этот класс адаптера, который отображает editText в утилите просмотра, он работает нормально, но я хочу изменить положение элемента списка, отображаемого в тексте редактирования, так как я использую массив, в котором первый элемент отображается как «0»,
так как я могу сделать так, чтобы он считал от «1», чтобы мне было целесообразно предложить пользователю кормить как «элемент 1», а не начинать с «элемент 0».
Также для хранения информации я использовал 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());
}
});
}
}
}