NullPointerException при наличии объекта. AS

Я пишу код для замены текста в объекте EditText с id "nameRoom", но возникает ошибка: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference;

вот часть кода из xml (activity_edit_room):

<EditText
        android:id="@+id/nameRoom"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:autofillHints="name"
        android:ems="10"
        android:gravity="center_horizontal"
        android:hint="@string/section_name_hint"
        android:inputType="text"
        android:minHeight="48dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/backImageNewRoom" />

Отмечу, что такой же айди есть и в другом документе xml. (Я менял айди, ошибка та же).

Вот код ViewHolder:

public static final class EditRoomViewHolder extends RecyclerView.ViewHolder {

        private final TextView newRoomText;
        private final EditText newRoomCount;
        private final EditText nameRoom;

        public EditRoomViewHolder(@NonNull View itemView) {
            super(itemView);

            newRoomText = itemView.findViewById(R.id.widgetName);
            newRoomCount = itemView.findViewById(R.id.widgetCount);
            nameRoom = itemView.findViewById(R.id.nameRoom);
        }
    }

Вот как название меняется в адаптере, отмечу что переменная this.first по умолчанию true:

if (this.first) { 
            DatabaseHelpers dbHelper = new DatabaseHelpers(context);
            SQLiteDatabase db = dbHelper.getReadableDatabase();

            String sqlQuery = "SELECT name FROM widgets WHERE id = ?";
            Cursor cursor = db.rawQuery(sqlQuery, new String[]{String.valueOf(this.id)});

            if (cursor.moveToFirst()) {
                Log.i("INF", cursor.getString(cursor.getColumnIndexOrThrow("name")));
                holder.nameRoom.setText(cursor.getString(cursor.getColumnIndexOrThrow("name"))); <-- жалуется компилятор (java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference)
            }

            cursor.close();

            this.first = false;
        }

Вот как биндится RecyclerView, если вдруг нужно:

private void setNewRoomRecycler(List<NewRoom> newRoomList, int id) {
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);

        editRoomRecycler = findViewById(R.id.editRoomRecycler);
        editRoomRecycler.setLayoutManager(layoutManager);

        editRoomAdapter = new EditRoomAdapter(this, newRoomList, id);
        editRoomRecycler.setAdapter(editRoomAdapter);
    }

По факту NullPointerException вызывается когда нет чего либо, но в данном случае вроде всё есть. Или я глуп и невнимателен или что-то напортачил с xml. Помогите пожалуйста.


Ответы (1 шт):

Автор решения: Mixadyt

Пытался взять объект из itemView, но совсем забыл, что в itemview только те объекты, которые в блоках, а не в активити, очень глупый вопрос, извинняюсь.?‍♂️

→ Ссылка