2017-02-16 9 views
0

これまでは文字列と整数を使用して設定を行いました。しかし、今、私は配列を設定したい。たとえば、インデックス0の値を設定します。setTotalValue [0] = 90; 。それから、私はgetTotalValue [0]を使って戻ってくることができるので、値90が得られます。これまでは文字列を使用していました。これは私のコードを表示する私は文字列を優先させる。オブジェクト内の配列はアンドロイドの設定として設定します

このクラスのオブジェクト

public class ShowDateFromTo { 
private String fromDate; 

public ShowDateFromTo(String fromDate) { 
    this.fromDate = fromDate; 
} 

public String getFromDate() { 
    return fromDate; 
} 

public void setFromDate(String fromDate) { 
    this.fromDate = fromDate; 
} 

} 

私は

public class TotalBadge { 
private ArrayList<Integer> totalValue = new ArrayList<Integer>(); 

public TotalBadge(ArrayList totalValue){ 
    this.totalValue = totalValue; 
} 

public ArrayList<Integer> getTotalValue() { 
    return totalValue; 
} 

public void setTotalValue(ArrayList<Integer> totalValue) { 
    this.totalValue = totalValue; 
} 

}

私は右アム、このいずれかに変更できますか?

このクラスの環境

public class PreferencesFromToDate { 

SharedPreferences preferences; 
public PreferencesFromToDate(Context context){ 
    preferences = context.getSharedPreferences("pref", Context.MODE_PRIVATE); 
} 

public void setPreferencesFromToDate(ShowDateFromTo profiles){ 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putString("FROMDATE",profiles.getFromDate()); 
    editor.apply(); 
} 

public ShowDateFromTo getPreferencesFromToDate(){ 
    String fromDate = preferences.getString("FROMDATE", ""); 
    ShowDateFromTo profiles = new ShowDateFromTo(fromDate); 

    profiles.setFromDate(fromDate); 
    return profiles; 
} 
} 

私は、配列に文字列を置き換えることができますどのようにそれを

ShowDateFromTo profile = new ShowDateFromTo(newdateFrom); 
profile.setFromDate(newdateFrom); 

を設定するこのショー。私は配列の4つのインデックスを持っています。平均totalValue [0]、totalValue [1]、totalValue [2]、totalValue [3]

+0

なぜSharedPreferencesにデータを保存するためにJSON形式を試してみませんか?それはあなたの人生をより簡単にします。 –

+0

Json形式はどうすればいいですか? –

答えて

0

データを保存するためにjson形式を使用できます。

public void setPreferencesFromToDate(ShowDateFromTo profiles){ 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("FROMDATE", gson.toJson(profiles)); 
editor.apply(); 
} 

public ShowDateFromTo getPreferencesFromToDate(){ 
ShowDateFromTo fromDate = gson.fromJson(preferences.getString("FROMDATE", ""), ShowDateFromTo.class); 
return fromDate; 
} 

は、あなたのGradleファイルにgsonを追加することを忘れないでください:

compile 'com.google.code.gson:gson:2.7' 

使用JSONはプロのAndroid開発者のために人気があります。あなたはそれをよく知っているはずです。

http://androidopentutorials.com/android-sharedpreferences-tutorial-and-example/

+0

FROMDATEは文字列ですが、配列を –

+0

に変更したい場合は配列に値を変更し、PreferencesFromToDateにメソッドを書き込んで配列を返すことができます。次に、 "getTotalValue()[0]"として使用できます。 –

+0

あなたはそれを表示できますか?例えば –

0

あなたはJSON文字列として配列を格納することができます。必要なときはいつでも、JSON Stringを取得して配列に解析することができます。 You can check this link

0

このようなことができます。各項目の異なるキー名でデータを格納します。

public class PreferencesData { 

    private static final String PREF_NAME = "pref"; 
    private static final String KEY_DATA = "key_data_"; 

    private SharedPreferences mPreferences; 
    private int mSize; 

    public PreferencesData(Context context, int size) { 
     mSize = size; 
     mPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); 
    } 

    public ArrayList<Integer> getArrayValue() { 
     ArrayList<Integer> result = new ArrayList<>(); 
     for (int i = 0; i < mSize; i++) { 
      result.add(i, getValue(i)); 
     } 
     return result; 
    } 

    public Integer getValue(int index){ 
     return mPreferences.getInt(KEY_DATA + index, 0); 
    } 

    public void setValue(int index, int value) { 
     SharedPreferences.Editor editor = mPreferences.edit(); 
     editor.putInt(KEY_DATA + index, value); 
     editor.apply(); 
    } 
} 

使用法:

// Set initial size of 4 
PreferencesData preferences = new PreferencesData(this, 4); 
// set value of 100 to index 0 
preferences.setValue(0, 100); 
// set value of 20 to index 1 
preferences.setValue(1, 20); 
// set value of 40 to index 3 
preferences.setValue(3, 40); 

// Get all data 
ArrayList<Integer> arrayList = preferences.getArrayValue(); 
for (int i = 0; i < arrayList.size(); i++) { 
    ... 
} 

// Get value of index 1 
int value = preferences.getValue(1); 
関連する問題