Я хочу передать идентификатор из метода onItemClick в метод editTask с помощью глобального объекта Task mTask, но когда я хочу установить идентификатор для mTask.setId (item.getId ());в onItemClick я всегда получаю нулевое значение ... Если я устанавливаю ID на: ID = item.getId ();Это хорошо.В чем может быть проблема или, может быть, вы знаете лучшее решение для передачи данных между методами в viewmodel?
ViewModel:
public class MainViewModel extends AndroidViewModel implements RecyclerViewAdapter.OnItemClickListener {
private TaskRepository taskRepository;
private LiveData<List<Task>> allTasks;
public final ObservableField<String> description = new ObservableField<>();
public final ObservableField<String> date = new ObservableField<>();
public final ObservableField<String> time = new ObservableField<>();
private String TAG;
private int ID;
private Task mTask;
public MainViewModel(@NonNull Application application) {
super(application);
taskRepository = new TaskRepository(application);
allTasks = taskRepository.getAllTasks();
}
public LiveData<List<Task>> getAllTasks() {
return allTasks;
}
public void deleteTask(Task task) {
taskRepository.delete(task);
}
public void getDataToEdit() {
editTask(description.get(), date.get(), time.get());
}
public void editTask(String description, String date, String time) {
Task task = new Task(description, date, time);
task.setId(ID);
taskRepository.update(task);
Log.d(TAG, "MVM editTask " + task.getId());
}
@Override
public void onItemClick(View view, Task item) {
Log.d(TAG, "MVM " + item.getDescription() + " / " + item.getDate() + " / " + item.getTime() + " / " + mTask);
description.set(item.getDescription());
date.set(item.getDate());
time.set(item.getTime());
ID = item.getId();
mTask.setId(item.getId());
if (mTask != null) {
mTask.setId(item.getId());
}
}