Прелесть PreferenceActivity заключается в тесной интеграции с res/xml
Android. Все, что вам нужно сделать, чтобы достичь волшебства самостоятельного чтения/сохранения предпочтений, вместе с пользовательским интерфейсом, это определить:
public class MyPreferenceActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
И определите любую структуру <PreferenceScreen>
, которая вам нужна, в файле(ах) XML.
Но это также кажется его слабостью: он настолько тесно интегрирован, что я понятия не имею, можно ли использовать PreferenceActivity с SQLite (для более структурированного управления предпочтениями), без повторного изобретения в то время как (т. е. переписывание всей «PreferenceActivity» с нуля).
Например, использование OnSharedPreferenceChangeListener может предоставить доступ к использованию PreferenceActivity. с SQLite, но для этого по-прежнему требуются определения res/xml
, поэтому на самом деле мы все еще ограничены ограничениями метода res/xml.
Есть ли способ «съесть торт и получить его тоже»? т.е. использовать PreferenceActivity с SQLite так же просто, как res/xml
.