我想在我的首选项屏幕底部添加一些按钮,用于设置默认值和恢复默认值。 这个 答案没有涵盖如何在使用PreferenceFragment时实现此目的。有什么推荐的方法可以实现这个功能。
加载首选项片段的活动:
public class SettingsActivity extends Activity {
@Override
public void onCreate( Bundle savedInstanceState) {
super.onCreate( savedInstanceState);
// load up the preferences fragment
getFragmentManager().beginTransaction().replace( android.R.id.content, new PrefsSettingsFragment()).commit();
}
}
PreferenceFragment实现:
public class PrefsSettingsFragment extends PreferenceFragment {
@Override
public void onCreate( Bundle savedInstanceState) {
super.onCreate( savedInstanceState);
addPreferencesFromResource( R.xml.preferences);
}
}
偏好设置文件:preferences.xml
<?xml version="1.0"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference android:key="edit_text_preference_server_address" android:title="@string/preference_server_address"/>
<SwitchPreference android:key="switch_preference_bat" android:title="@string/preference_bat"/>
<SwitchPreference android:key="switch_preference_comm" android:title="@string/preference_comm"/>
<SwitchPreference android:key="switch_preference_dev_mode" android:title="@string/preference_dev_mode" android:defaultValue="true"/>
</PreferenceScreen>
addPreferencesFromResource(...)
来填充列表视图。虽然我不建议在屏幕底部悬浮按钮。除非你是指在列表视图底部? - StrikeForceZerogetFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsSettingsFragment()).commit()
之后调用this.setContentView(R.layout.activity_settings)
,可以让我在底部获得一个按钮,就像我想要的那样。接下来要解决的问题是如何让这个按钮起作用。 - NamasteonClickListner()
,并调用PreferenceManager.setDefaultValues(context, PREFS_FILENAME, 0, R.xml.preferences, true);
(如果您不想覆盖已设置的首选项,仅首次设置默认值,则为false)。 - StrikeForceZero