【发布时间】:2020-04-26 08:18:33
【问题描述】:
我目前正在开发一个遵循 MVVM 架构的笔记应用程序。有2个活动。主要带有笔记列表和允许用户查看笔记的查看模式。如果他们单击描述或标题,则允许编辑模式,您可以在其中保存更改以及不保存更改。创建新笔记时,它会将用户带到相同的活动以查看/编辑笔记,并启用带有空标题和描述的编辑模式。我目前遇到的问题是,如果用户创建了一个便笺并决定在创建后立即对其进行编辑,那么当用户返回到便笺列表时,它会有一堆便笺,每个便笺都包含他所做的每个更新,因此笔记被保存到新笔记中,而不是更新现有笔记。
保存笔记代码:
private void saveNote(){
//updates existing note. Next Statement adds new note
if(getIntent().hasExtra(EXTRA_ID)){
mViewTitle.setText(mEditTitle.getText().toString());
String timeStamp = Utility.getCurrentTimestamp();
timeStamp = timeStamp.replace("-", " ");
Note note = new Note(mTitle, mContent, timeStamp);
note.setId(mID);
mAddEditNoteViewModel.update(note);
Toast.makeText(this, "Note Updated", Toast.LENGTH_SHORT).show();
} else if(!getIntent().hasExtra(EXTRA_ID)){
mViewTitle.setText(mEditTitle.getText().toString());
String timeStamp = Utility.getCurrentTimestamp();
timeStamp = timeStamp.replace("-", " ");
Note note = new Note(mTitle, mContent, timeStamp);
mAddEditNoteViewModel.insert(note);
Toast.makeText(this, "New Note Created:", Toast.LENGTH_SHORT).show();
}
}
如您所见,我检查是否需要更新或创建新笔记的方法是检查意图是否具有我需要的数据(在本例中为 ID)。但是当用户刚刚创建笔记并且没有返回主活动时,每次新创建的笔记被更新而不返回主活动时都会调用 else if 语句从而创建一个新笔记。我似乎找不到解决这个问题的方法。我想只在用户返回主活动后保存新笔记,但如果用户创建笔记,单击复选标记图标(保存)并关闭应用程序而不返回主活动,则笔记将不会保存。我该如何解决这个问题?
【问题讨论】:
标签: java android mvvm viewmodel android-livedata