2013-04-10 3 views
2

У меня есть функция PreferenceActivity, и есть некоторые CheckBoxes.Android - как сохранить состояние включенного CheckBox

<PreferenceScreen 
     android:key="prefGraphValues" 
     android:title="@string/pref_graph_values" 
     android:persistent="false" > 
     <CheckBoxPreference 
      android:defaultValue="true" 
      android:key="Temp.Dry" 
      android:summary="@string/pref_graph_value_temp_dry_summary" 
      android:title="@string/pref_graph_value_temp_dry" > 
     </CheckBoxPreference> 
</PreferenceScreen> 

Somwhere в коде у меня есть что-то вроде этого:

checkBox.setEnabled(false); 

Но когда я закрываю эту деятельность, а затем запустить его, флажок. Могу ли я сохранить это состояние?

Thanks

ответ

1

Измените ваше постоянное свойство на true.

android:persistent="true" 

Actual, если назначить его false это означает, что предпочтение не будет хранить значение (s) к SharedPreferences и это причина, почему ваше состояние не сохраняется в «следующем запуске».

+0

Да, это свойство сохраняет состояние checkbox, которое отмечено или нет, но не указано, что оно включено или отключено. Я не знаю, как это сделать. Некоторые другие идеи? – Papaja

+0

@Papaja поэтому автоматически сохраняет состояние в SharedPreferences. Когда вы установите значение false, сохраните его в SharedPreferences с помощью ключа, например, 'Temp.DryIsNotEnabled', знаете ли вы, как его достичь? или вам нужен пример кода? – Sajmon

+0

да, я знаю, как его достичь, но я думаю, что это другой способ (проще), который API реализует для этого случая. Но да, это решение для меня :-) Спасибо. – Papaja

0

Вы должны применить изменение к sharedpreference, и в следующий раз, когда флажок будет извлекать значение ключом из sharedpreference.

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); 
sp.edit().putInt(your_key, your_value).apply(); 
Смежные вопросы