Как бороться с edittext, динамически реализованным с тем же идентификатором, который копирует те же данные? - PullRequest
0 голосов
/ 23 октября 2019

Чего я хочу добиться, так это того, что при открытии действия появляется EditText, и когда я что-то в него печатаю, под ним создается другая копия того же макета, пока я больше не хочу, чтобы списки добавлялись.

Я пытался добиться этого путем реализации RecyclerView, и при каждом нажатии на EditText я добавлял textchangedlistener для увеличения размера Arraylist, который inturn добавляет макет в recyclerview. Я также вставил данные в Arraylist по методу onCreate, чтобы в программе recyclerview отображались первые EditText

Реализация метода onclick приведена ниже

        public void onClick(String edittext_string, final EditText editText, CheckBox checkBox, final list_adapter list_adapter, final View view, final list_adapter.ViewHolder viewHolder) {
    if (view.getId() == R.id.edit_text_list) {
        editText.addTextChangedListener(new TextWatcher() {
          @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                if (position[viewHolder.getAdapterPosition()] != null && position[viewHolder.getAdapterPosition()] == 1)
                    checklist = 1;
                else {
                    checklist = 0;
                }
                if (!editText.getText().toString().isEmpty()) 
                    if (checklist == 0) {
                        list_text = editText.getText().toString();
                        list_entry_model_list.add(new List_Entry_Model(list_text));
                        if (viewHolder.getAdapterPosition() >= 0)
                            position[viewHolder.getAdapterPosition()] = 1;    
                    }

            }

Полученная ошибкачто одни и те же данные реплицируются во всех EditTexts. В следующем динамическом макете отражается текст, введенный в предыдущем EditText. Я знаю, что это ошибка реализации. Я хочу знать, является ли это правильным способом достижения этого? и Есть ли альтернативы для достижения этой цели?

Как добавить текст того же самого edittext к себе, не устанавливая его для следующего макета?

onCreateViewHolder code

        public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    v = LayoutInflater.from(context).inflate(R.layout.listview_checkbox, parent, false);
    return new ViewHolder(v);
}

Я все еще учусь и. Я предоставлю дополнительный код при необходимости. Спасибо. (Это приложение для заметок, чтобы добавить список заметок)

...