Estou começando a codificar um aplicativo para tomar notas, como o Evernote ou um aplicativo básico memorando pré-instalado, para que eu possa aprender e praticar a codificação.
Atualmente eu salvar a entrada do usuário em um arquivo .txt, de modo que cada nota teria um arquivo de texto no armazenamento, com o conteúdo da nota. Quais são os outros métodos de salvar a entrada do usuário no armazenamento (você não precisa explicar, palavra-chave seria apropriado) e quais são as vantagens ou desvantagens de fazer isso? O que pode ser contras de salvar arquivos de texto como eu estou fazendo agora?
- Salve o conteúdo de um arquivo em cache do seu aplicativo
- Se o conteúdo for texto simples (e não muito longo), você pode facilmente usar
SharedPreferences
para salvar o conteúdo - Você pode usar um banco de dados
Note-se que, se o conteúdo é um texto rico, você pode formatar que (por exemplo, usando HTML, JSON ou XML e salvar arquivos (como imagens) em uma pasta especificada e escrever a localização dos arquivos para o texto formatado) e depois salvar para um banco de dados.
links úteis para começar:
Utilizando bancos de dados:
- https://developer.android.com/training/data-storage/sqlite
- https://developer.android.com/training/data-storage/room
- https://www.tutorialspoint.com/android/android_sqlite_database.htm
Editores de texto rico:
Como obter o diretório cache?
File cacheDir = this.getCacheDir();
ou
File cacheDir = this.getApplicationContext().getCacheDir();
Note-se que, se o conteúdo é importante, você pode criar uma nova pasta no armazenamento (como "My App Nome Files") e salvar o conteúdo para essa pasta.
Se você estiver usando EditText:
Eu nomear o EditText uinput
. Aqui vamos nós:
private void saveContent() {
String content = uinput.getText().toString();
String name = "Note 1"; // You can create a new EditText for getting name
// Using SharedPreferences (the simple way)
SharedPreferences sp = this.getApplicationContext().getSharedPreferences("notes", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString(name, content);
editor.apply();
}
private Map<String, ?> getAllNotes() {
SharedPreferences sp = this.getApplicationContext().getSharedPreferences("notes", Context.MODE_PRIVATE);
return sp.getAll();
}
private String getNoteContent(String noteName) {
SharedPreferences sp = this.getApplicationContext().getSharedPreferences("notes", Context.MODE_PRIVATE);
return sp.getString(noteName, "Default Value (If not exists)");
}
Não salvar outras coisas na SharedPreferences "notes"
.