用户可以在我的应用程序中添加项目,并且我有一个用于项目设置的 PreferenceFragment。
这是我的 fragment :
public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.project_settings);
}
}
我的 Activity :
public class Settings extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
}
每个项目的可用设置相同,但应按项目保存数据(例如项目名称)。那么如何将首选项保存到我的 sqlite 数据库中呢?
最佳答案
将其放在这里是因为有关该主题的其他问题/答案均不令人满意,而且我刚刚完成了此功能(将 PreferenceFragment 中的首选项连接到数据库)。
基本上,您应该为 XML 中的每个首选项设置 android:persistent="false"
。然后,您应该在 onCreate()
上手动将值加载到 Preferences 中,并使用 setOnPreferenceChangeListener()
进行数据库值更新和 Preference 摘要字段更新。您可能还必须扩展一些现有的首选项以允许手动设置它们的值,因为其中一些(例如 RingtonePreference
)没有设置其值的方法 - 它们只是在内部获取它们来自共享首选项。
关于android - 在 PreferenceFragment 中从数据库加载/保存设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432984/