Recyclerview editText отображает позицию элемента списка с элементом в качестве «элемента 1», а не «элемента 0» - PullRequest
0 голосов
/ 02 мая 2018

Привет, у меня есть этот класс адаптера, который отображает 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());
                }
            });

        }
    }
}

1 Ответ

0 голосов
/ 02 мая 2018
@Override
public void onBindViewHolder(final CustomAdapter.MyViewHolder holder, final 
int position) {
    holder.editText.setText(" Item  : "+ (Integer.parseInt(editModelArrayList.get(position))+1));

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...