2017-11-20 7 views
-2

私は、アプリケーションが終了した後に文字列配列を保存し、再度開いたときに同じ文字列情報を取得する最良の方法を見つけようとしています。文脈は、私がウェブサイトからデータを解析して文字列配列に格納する方法を考え出したことですが、ユーザーが文字列配列にインターネットアクセス権を持たない場合に文字列配列を保存できるようにしたい取り出される。String []配列を保存してアプリケーションを閉じた後に取得する

これは、JavaでのAndroidのスタジオで行われている - ちょうどその明確な

を作るには、私はsharedpreferenences方法を検討していますが、作業のソリューションを持っていないされています。誰かが私を助けることができれば、私は大いに感謝されるでしょう!

String[] webValues = new String[(this value can be very large)]; 

私は全体の文字列の配列を格納し、全体の文字列配列を取得するために探していますし、その後の活動内の特定のインデックスで配列を呼び出すことができるように:

は、文字列配列があるとしましょう。

+0

'アプリのcloses'後に文字列配列を保存する最良の方法。不可能。アプリが終了する前に保存する必要があります。 – greenapps

答えて

0
私は SharedPreferencesあなたは、アレイを書くことができないと思うので、あなたは putString機能を使用して個別にそれぞれの値を書き込む必要がありますいずれか

またはAPIレベル11以降、あなたは文字列のSetを保存するためにputStringSet機能を使用しますが、このことができますArraySetに変換すると重複が削除されます。私はあなたの状況に示唆していると、キーとしてインデックスを使用して、個々の文字列を記憶しているので、そのようなものは

public boolean saveArray(String[] array, String arrayName, Context mContext) { 
    SharedPreferences prefs = mContext.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(); 
} 

データを保存するためにあなたのために働く必要がありますし、配列

public String[] loadArray(String arrayName, Context mContext) { 
    SharedPreferences prefs = mContext.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; 
} 

をロードしますこのポストから取られたIs it possible to add an array or object to SharedPreferences on Androidhttps://stackoverflow.com/users/833622/sherif-elkhatib

0

文字列配列の代わりにArrayListを使うと、簡単です。

は、その後の設定にあなたのArrayListを変換し、これを使用する:

SharedPreferences.Editor editor = shared.edit(); 
    Set<String> set = new HashSet<String>(); 
    set.addAll(yourArrayList); 
    editor.putStringSet("values", set); 
    editor.apply(); 

が値を取得するには:

List<String> yourValues = new ArrayList(); 
    Set<String> set = shared.getStringSet("values", null); 
    yourValues.addAll(set); 
関連する問題