像笔记一样保存用户输入的方法(Android Studio/Java 编程)?
Methods for saving user input like notes (Android Studio/Java programming)?
我开始编写用于记笔记的应用程序,例如 Evernote 或基本的预装备忘录应用程序,以便我可以学习和练习编码。
目前我将用户输入保存在一个 .txt 文件中,这样每个笔记在存储中都会有一个自己的文本文件,其中包含笔记内容。
还有哪些其他方法可以将用户输入保存在存储中(您无需解释,关键字就可以),这样做的优点或缺点是什么?像我现在这样保存文本文件有什么缺点?
- 将内容保存到应用缓存中的文件
- 如果内容是纯文本(而且不会太长),可以方便地使用
SharedPreferences
来保存内容
- 您可以使用数据库
请注意,如果内容是富文本,您可以对其进行格式化(例如,使用 HTML、JSON 或 XML 并保存文件(例如images)在指定的文件夹中,并将文件的位置写入格式化文本),然后保存到数据库。
有用的入门链接:
使用数据库:
- 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
富文本编辑器:
如何获取缓存目录?
File cacheDir = this.getCacheDir();
或
File cacheDir = this.getApplicationContext().getCacheDir();
注意,如果内容比较重要,可以在存储中新建一个文件夹(如"My App Name Files"),然后将内容保存到该文件夹中。
如果您使用的是 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"
中保存其他内容。
我开始编写用于记笔记的应用程序,例如 Evernote 或基本的预装备忘录应用程序,以便我可以学习和练习编码。
目前我将用户输入保存在一个 .txt 文件中,这样每个笔记在存储中都会有一个自己的文本文件,其中包含笔记内容。 还有哪些其他方法可以将用户输入保存在存储中(您无需解释,关键字就可以),这样做的优点或缺点是什么?像我现在这样保存文本文件有什么缺点?
- 将内容保存到应用缓存中的文件
- 如果内容是纯文本(而且不会太长),可以方便地使用
SharedPreferences
来保存内容 - 您可以使用数据库
请注意,如果内容是富文本,您可以对其进行格式化(例如,使用 HTML、JSON 或 XML 并保存文件(例如images)在指定的文件夹中,并将文件的位置写入格式化文本),然后保存到数据库。
有用的入门链接:
使用数据库:
- 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
富文本编辑器:
如何获取缓存目录?
File cacheDir = this.getCacheDir();
或
File cacheDir = this.getApplicationContext().getCacheDir();
注意,如果内容比较重要,可以在存储中新建一个文件夹(如"My App Name Files"),然后将内容保存到该文件夹中。
如果您使用的是 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"
中保存其他内容。