2016-12-11 8 views
0

整数配列リストを共有環境設定で数日間保存しようとしましたが、それを行う方法がわかりません。ここ Integer配列リストを共有環境設定に保存するにはどうすればいいですか?

は私が

 ////list that contains checked routes/// 
     ArrayList<Integer> checkedRoutePosition = new ArrayList<>(); 

を保存しようとしている配列のリストだと、ここで、配列が別のアクティビティでは、それ

 int listViewItemPosition = ((Activity) getContext()).getIntent().getIntExtra("listViewItemPosition",0); 

     checkedRoutePosition.add(listViewItemPosition); 

内の値を取得する方法[戻る]ボタンに新しい意思をクリックした後です私はこの活動に連れて行く。インテントは配列に保存する必要があるlistViewItemPositionの値を渡します。

上記のコード行は、私のカスタムアダプターのgetViewメソッドにリストビュー用です。それらを保存した後、私はそれらをgetViewの位置に比較したいと思います。値が等しい場合は、特定の画像を設定したい。このコードは正しい方法ですか?

for(int i=0; i<checkedRoutePosition.size(); i++) 
       if(position == checkedRoutePosition.get(i)) { 
        checkImageView.setImageResource(checkImageResourceId); 
       } 

ありがとうございました!

答えて

1

共有設定には配列やarraylistsを書き込むことはできません。一番近いのは、カンマで区切った文字列に整数を書き込んだり、文字列を書き込んだり、読み込みが必要なときに解析したりすることです。これは、配列のサイズが比較的小さい場合にのみ適切です。その規模が大きい場合は、SharedPreferencesからファイルやデータベースなどの別のストレージに移動する必要があります。

+0

約180個の値があります。それは大きすぎますか? – zsh5032

+0

主な影響は大きすぎます。特に、同じ環境設定ファイルに他のデータがある場合は、共有環境設定を読み書きするのが遅くなります。あまりにも大きすぎると主にパフォーマンスによって決まります。 –

+0

SQLデータベースを使用する方がより良い解決策になります –

関連する問題