No app de notas eu preciso que ele atualize a nota apenas se ela for modificada,
no momento atual toda vez que clico em salvar um nota existente ela salva sem eu ter feito nenhuma alteração
Conceitualmente, você precisa pegar os dados da nota atual e comparar com os novos valores informados antes de fazer a atualização (seu método updateNote, suponho). Algo como:
Notenote=dao.getNote(); // nome de exemplo, use seu método que recupera a nota a ser atualizada.if((!note.getText().equals(text))||(!note.getTitle().equals(text2)){
temp.setNoteText(text);temp.setNoteTitle(text2);temp.setNoteDate(date);temp.setNoteDate2(date);temp.setNoteDate3(date);temp.setNoteDate4(date);dao.updateNote(temp);
}
Opcionalmente, você pode criar um método para comparar 2 notas e dizer se são iguais, e usar no if acima. Algo como:
A ideia do meu código foi exemplificar o que você pode fazer, não te dar o código pronto e funcionando. Você precisa adaptar para o seu cenário, não simplesmente copiar e colar.
A parte é importante é a comparação (if). A nota a ser comparada para ver se houve alterações fica por sua conta.
Abraço.
W
Whiskey
Ja fiz reescrevi em 3 tipos diferentes
B
Benjamin_Junior
Analisando o codigo. coloquei analise em comite … se 1 estiver vazio vc salva senao salva em 3 ? o seu codigo ou salva ou salva.
outra coisa em 2 ele ve se temp==null mas nao temos informação o que vc fez antes com esta informação antes mas é inrrelevante ele vai ler se for null ele toma a ação e vai salvar. neste crie um metodo que consulte antes a informação se a sua nota esta no banco e dai tome a ação conforme retorno. para que eu pudesse te orientar precisaria ver mais informações do seu codigo. ou seja como esta o metodo de consulta do seu dao
cria o metodo equals e hashcode com todos os campos, e antes de salvar, recuperar a nota do banco e compara se estao iguais. os proprios ides criam esse metodo dentro do objeto para voce. opcao Generate hashcode and equals
ai voce compara if(!notaTemp.equals(notaDoBanco)) {salvar(notaTemp); }