Сеттер не устанавливает значение для java объекта - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь установить ключ (firebase key) для моего java объекта TaskModel. Но после использования setter, когда я пытаюсь получить данные с помощью getter. Возвращается ноль.

Структура базы данных

enter image description here

for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
                taskModel.setTaskID(dataSnapshot1.getKey());
                taskModel = dataSnapshot1.getValue(TaskModel.class);
                Log.d("myadaptor", taskModel.getTaskID());
                list.add(taskModel);
            } 

Пожалуйста, помогите мне установить ключ к моему объекту!

TaskModel. java

public class TaskModel {
    private String taskTitle;
    private String dueDate;
    private String taskDescription;
    private String taskID;

    public String getTaskID() {
        return taskID;
    }

    public void setTaskID(String taskID) {
        this.taskID = taskID;
    }

    public String getTaskTitle() {
        return taskTitle;
    }

    public void setTaskTitle(String taskTitle) {
        this.taskTitle = taskTitle;
    }

    public String getDueDate() {
        return dueDate;
    }

    public void setDueDate(String dueDate) {
        this.dueDate = dueDate;
    }

    public String getTaskDescription() {
        return taskDescription;
    }

    public void setTaskDescription(String taskDescription) {
        this.taskDescription = taskDescription;
    }

    public TaskModel(String taskTitle, String dueDate, String taskDescription) {
        this.taskTitle = taskTitle;
        this.dueDate = dueDate;
        this.taskDescription = taskDescription;
    }

    public TaskModel(){

    }

}

1 Ответ

0 голосов
/ 05 апреля 2020

Здесь, в старом коде, вы назначаете ID для taskModel, после чего инициализируете taskModel как новый объект из dataSnapShot. И в dataSnapShot у вас есть null в качестве идентификатора. ТАК это как переопределение id:

            taskModel.setTaskID(dataSnapshot1.getKey());
            taskModel = dataSnapshot1.getValue(TaskModel.class);

Обновить положение строки:

        for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
            taskModel = dataSnapshot1.getValue(TaskModel.class);
            taskModel.setTaskID(dataSnapshot1.getKey());
            Log.d("myadaptor", taskModel.getTaskID());
            list.add(taskModel);
        } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...