Методы для сохранения пользовательского ввода, как заметки (Android Studio / Java-программирование)? - PullRequest
2 голосов
/ 03 октября 2019

Я начинаю кодировать приложение для заметок, например Evernote или простое предустановленное приложение memo, чтобы я мог изучать и практиковаться в кодировании.

В настоящее время я сохраняю пользовательский ввод в файле .txt,чтобы каждая заметка имела собственный текстовый файл в хранилище с содержимым заметки. Каковы другие способы сохранения пользовательского ввода в хранилище (вам не нужно объяснять это, ключевое слово будет уместно) и каковы преимущества или недостатки этого? Какие могут быть недостатки сохранения текстовых файлов, которые я сейчас делаю?

1 Ответ

0 голосов
/ 03 октября 2019
  1. Сохранение содержимого в файл в кеше вашего приложения
  2. Если содержимое представляет собой простой текст (и не слишком длинный), вы можете легко использовать SharedPreferences для сохранения содержимого
  3. Вы можете использовать базу данных

Обратите внимание, что если содержимое представляет собой форматированный текст, вы можете отформатировать его (например, с использованием HTML, JSON или XML и сохранить файлы (например, изображения) вуказанную папку и укажите расположение файлов в форматированном тексте), а затем сохраните в базе данных.

Полезные ссылки для начала работы:

Использование баз данных:

Rich Text Editors:

Как получить каталог кэша?

File cacheDir = this.getCacheDir();

или

File cacheDir = this.getApplicationContext().getCacheDir();

Обратите внимание, что если содержимое важно, вы можете создать новую папку в хранилище (например, «Мои файлы имен приложений») и сохранить содержимое в этой папке.


Если вы насing EditText:

Я называю EditText uinput. Вот и мы:

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)");
}

Не сохраняйте другие вещи в SharedPreferences "notes".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...