1

これは何百回も聞かれていると思いますが、私は自分自身を正しい方向に向けることができません。

私は、最初の起動後に、ユーザー入力を取得して保存するクラスのインスタンスを生成するアプリに取り組んでいます。その最初の起動後、連続して起動するたびに、同じインスタンスを読み取るか、少なくとも以前の同じデータを新しいインスタンスにロードします。どうすればそれを行うことができますか?

私の理解では、これを内部ストレージで生成されたファイルに保存する必要がありますが、よくわかりません。データは時間の経過とともに拡大するはずなので、どれだけ大きくなるかわかりません。

助けてくれてありがとう。

編集:私は私が必要なものについてもう少し拡張すると思います...

基本的に、私はユーザー入力を受け取り、それを「頭脳」に保存する小さなロボットに取り組んでいます。私がする必要があるのは、この「頭脳」をファイルに保存することです。これにより、アプリを起動するたびに、この「頭脳」が読み込まれます。ユーザー入力は文字列に他なりません。

4

4 に答える 4

2

これは、Android SharedPreferencesクラスを使用して行うことができます。これは、起動間で設定を保存する方法です。

SharedPreferences appSettings = this.getSharedPreferences("fileName", 0);
SharedPreferences.Editor = appSettings.edit;

appSettings_Edit.putString("saveme", "this will be saved"); //First Parameter, name of the value, second parameter, value of the name
appSettings_Edit.commit(); //This is called to commit the changes to memory.

//This can be called anytime after `commit()`, including in any sequential launches, and it will return the vale of whatever you set.
appSettings.getString("saveme");

実際のファイルを保存するfile場合は、BufferedWriterを使用してシステム上にハードファイルを作成できます。

BufferedWriter out = new BufferedWriter(new FileWriter(new File(fileName)));
out.write("I am a line of text written in" + fileName);
out.close();

次に、BufferedReaderを使用してファイルの内容を取得できます。

List<String> SomeStringListArray = new ArrayList<String>();
BufferedReader in = new BufferedReader(new FileReader(new File(fileName)));
String s;
while ((s = in.readLine()) != null) {
    SomeStringListArray.add(s);
}
in.close();

このファイルをAndroidキャッシュディレクトリに作成して、ファイル名のパスを次の場所から取得することにより、ファイルからのみアクセスできるようにすることもできます。

this.getChachDir();
this.getExternalCacheDir();
于 2013-01-30T21:15:14.043 に答える
0

収集するデータの種類によって多少異なりますが、一般的に、SQLiteデータベースを使用することでほとんどのニーズに対応できます。

ユーザーが変更できる値がごくわずかである場合は、 SharedPreferencesが適切なオプションです。

于 2013-01-30T21:15:05.093 に答える
0

保存したいオブジェクトがSerializableインターフェースを実装している場合、シリアル化を使用してファイルを保存できます。コード例が必要な場合は、お知らせください。これは最も簡単な方法の1つです。

于 2013-01-30T21:15:10.093 に答える
0

ファイルに保存することも可能ですが、データがアプリケーションでのみ使用される場合は、他のオプションを検討することをお勧めします...

データがかなり小さい場合は、を使用できますSharedPreferences

より大きなデータの場合は、を使用できますdatabase

ここでは、さまざまなオプション(いくつかの例を含む)について説明します

于 2013-01-30T21:15:16.123 に答える