Таким образом, у меня есть 2 экрана один, чтобы сохранить другой для извлечения.В конечном итоге я хочу сохранить установленный флажок в sharedPref, извлечь его в виде STRING и поместить его в ArrayList, чтобы перетасовать случайный STRING, который был выбран.
До сих пор я пробовал много решений, но ни одно из них не работало.Я всегда получаю не отмеченный флажок.Я только хочу проверить, даже если я просто выберу ОДИН из флажка.Любые советы будут оценены.
РЕДАКТИРОВАТЬ: Я решил проблему ... по крайней мере, на данный момент.Посмотрите на UpdateReceive.java, чтобы увидеть решение.Но для других экранов у меня будет 9 флажков, и возможности слишком утомительны, чтобы делать это таким образом.Так есть ли лучшие методы там?
Storing.java
SharedPreferences sharedMode = getSharedPreferences("MySharedMode", Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedMode.edit();
editor.clear();
editor.commit();
if ( cbCool.isChecked() || cbHeat.isChecked()) {
editor.putBoolean("Cool", cbCool.isChecked());
editor.putBoolean("Heat", cbHeat.isChecked());
editor.commit();
}
Receieve.java
SharedPreferences sharedMode = getSharedPreferences("MySharedMode", Context.MODE_PRIVATE);
String heat = String.valueOf(sharedMode.getBoolean("Heat", false));
String cool = String.valueOf(sharedMode.getBoolean("Cool", false));
if (heat != null && cool != null) {
String m_heat = "Heat";
String m_cool = "Cool";
List<String> list = new ArrayList<String>();
list.add(m_heat);
list.add(m_cool);
Collections.shuffle(list);
String randMode = list.get(0);
tvMode.setText(randMode);
}
ОбновленоПолучить.java
if (heat == "true" && cool != "true") {
tvMode.setText("Heat");
}
else if (heat != "true" && cool == "true") {
tvMode.setText("Cool");
}
else if (heat =="true" && cool == "true") {
String m_heat = "Heat";
String m_cool = "Cool";
List<String> list = new ArrayList<String>();
list.add(m_heat);
list.add(m_cool);
Collections.shuffle(list);
String randMode = list.get(0);
tvMode.setText(randMode);
}