Java Android Как сохранить несколько CheckBox в строку, если отмечено, и сохранить в SharedPref и получить его в виде строки - PullRequest
0 голосов
/ 26 апреля 2018

Таким образом, у меня есть 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...