0

私は方法を理解するのに苦労しているアラームマネージャを持っています

A) store a unique ID for each pending intent alarm
B) a name to identify each alarm with and 
C) a number which represents an alarm sound to be used. 

私はSharedPreferencesこの件で使用していましたが、アラームの 1 つのインスタンスしか実行できず、アラームの複数のインスタンスに対してこのデータを保存したいと考えています。ユーザーがアプリをもう一度開いたときに、既に設定されているアラームの詳細が表示されるように、アプリを閉じてもこのデータを保持する必要があります。

alarm1 -> 2431 -> 12
alarm2 -> 8412 -> 42
alarm3 -> 5425 -> 52
4

1 に答える 1

1

テーブルに値を格納するために、いつでも SQLlite データベースを使用できます。一方、Shared Preference に保存することを主張する場合は、次のように、SharedPreference で配列を保存し、そこから配列を読み込むことができます。

public String[] loadArray(String arrayName) {  
    SharedPreferences prefs = getSharedPreferences("preferencename", 0);  
    int size = prefs.getInt(arrayName + "_size", 0);  
    String array[] = new String[size];  
    for(int i=0;i<size;i++)  
        array[i] = prefs.getString(arrayName + "_" + i, null);  
    return array;  
}  

public boolean saveArray(String[] array, String arrayName) {   
    SharedPreferences prefs = getSharedPreferences("preferencename", 0);  
    SharedPreferences.Editor editor = prefs.edit();  
    editor.putInt(arrayName +"_size", array.length);  
    for(int i=0;i<array.length;i++)  
        editor.putString(arrayName + "_" + i, array[i]);  
    return editor.commit();  
}

したがって、配列呼び出しを保存するには:

String [] alarmNames; // Load the array with values
saveArray(alarmNames, "nameOfAlarms");

String [] alarmIds; // Load the array with values
saveArray(alarmIds, "idOfAlarms");

String [] alarmSounds; // Load the array with values
saveArray(alarmSounds, "soundOfAlarms");

共有設定から配列をロードするには

String [] arrName = loadArray("nameOfAlarms");
String [] arrID = loadArray("idOfAlarms");
String [] arrSound = loadArray("soundOfAlarms");

配列をロードして配列を保存する方法を適切に使用する方法を参照してください。さらに、ArrayList を SharedPreferences に保存します。

お役に立てれば。

于 2013-07-27T07:03:39.487 に答える