0

私は最初のAndroidゲームを作っています。ユーザー名とスコアをファイルに保存して後で読みたいです。arraylistを使用して5つのユーザーオブジェクトを保存しようとしています。ファイルに効率的に書き込む方法がわかりません。それを読み返して、arraylistに格納します。別のより良い方法を知っているなら、教えてください。これが私が書くのに使っている方法です。

public static void save(FileIO file) {
    preferences = file.getSharedPref();
    Editor editor = preferences.edit();
    for(int i=0;i<5;i++){
        editor.putString("username"+String.valueOf(i), User.userList.get(i).userName);
        editor.putInt("userscore"+String.valueOf(i), User.userList.get(i).highScore);
        }
    editor.commit();
}

そして、これは私が読むために使用している方法です。

public static void read(FileIO file) {
    preferences = file.getSharedPref();
    for(int i=0;i<5;i++){
        User.userList.get(i).userName=preferences.getString("username"+String.valueOf(i), "abc");
        User.userList.get(i).highScore=preferences.getInt("userscore"+String.valueOf(i), 0);
    }

}

そして、これは私がハイスコアを表示しようとしているループです。 for(int i=0;i<5;i++){ g.drawString(String.valueOf(i+1)+"."+String.valueOf(User.userList.get(i).userName), 100, y, paint); g.drawString(String.valueOf(User.userList.get(i).highScore),150, y, paint2); y+=80; }

indexoutofbounds例外が発生しています

4

1 に答える 1

3

値を保存する場合:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(Your_Activity.this);

Editor editor = sp.edit();
editor.putString("username", "<username goes here>");
editor.putInt("score", <the score goes here>);
editor.commit();   // Do not forget this to actually store the values

これらの値を後で読みたい場合:

String gameUsername = sp.getString("username", "default");
int gameScore = sp.getInt("score", 0);

「username」と「score」は、それらの値のキーです。

SharedPreferences は、値を格納するときに頭に浮かぶ最も簡単な方法です。それが役に立てば幸い。〜乾杯。

于 2013-02-22T12:00:16.627 に答える