ディフェンディング:
私は学び、コーディング練習できるように、Evernoteのか、基本的なプリインストールされているメモのアプリと同じように、コードにメモを取るためのアプリを始めています。
現在、私はすべてのノートは、ノートのコンテンツと、ストレージにおける独自のテキストファイルを持っているだろうだから、.txtファイルにユーザー入力を保存します。ストレージにユーザー入力を節約する他の方法はどのようなものがあります(キーワードが適切であろう、それを説明する必要はありません)そうすることの利点や欠点は何ですか?私が今やっているようにテキストファイルを保存するの短所は何をすることができますか?
H.ファリド:
- あなたのアプリのキャッシュにファイルにコンテンツを保存
- コンテンツは、プレーンテキスト(および長すぎない)である場合は、簡単に使用できる
SharedPreferences
コンテンツを保存します - あなたは、データベースを使用することができます
コンテンツがリッチテキストであれば、あなたはそれをフォーマットすることもできます(HTML、JSONまたはXMLを使用して、例えばおよび(画像などのファイルの保存)指定したフォルダ内およびフォーマットされたテキストへのファイルの場所を書き込み)し、その後に保存データベース。
始めるために便利なリンク:
データベースを使用します:
- 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();
コンテンツが重要な場合、あなたは(「私のアプリの名前ファイル」のような)ストレージに新しいフォルダを作成し、そのフォルダにコンテンツを保存できることに注意してください。
あなたはの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"
。