一,PreferenceManager详情
这里使用的是SharedPreference的轻量级存储方式
二,读取
1,创建xml目录
2,创建默认配置文件
代码:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/perference_title">
<!--判断选中-->
<CheckBoxPreference
android:key = "silent_mode"
android:defaultValue="false"
android:title="Silent Mode"
android:summary="Mute all sounds from this app" />
<!--选择-->
<SwitchPreference
android:key="awesome_mode"
android:defaultValue="false"
android:switchTextOn="Yes"
android:switchTextOff="No"
android:title="Awesome mode™"
android:summary="Enable the Awesome Mode™ feature"/>
<!--输入保存-->
<EditTextPreference
android:key="custom_storage"
android:defaultValue="/sdcard/data/"
android:title="Custom storage location"
android:summary="Enter the directory path where you want data to be saved. If it does not exist, it will be created."
android:dialogTitle="Enter directory path (eg. /sdcard/data/ )"/>
</PreferenceCategory>
</PreferenceScreen>
调用方法
public class CameraActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
//获取配置值
PreferenceManager.setDefaultValues(this , R.xml.preference , false);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean silentMode = preferences.getBoolean("silent_mode" , false);
boolean awesomeMode = preferences.getBoolean("awesome_mode", false);
String string = preferences.getString("custom_storage", "");
}
/**
* 跳转配置页面
* @param view
*/
public void onSetting(View view){
this.getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingFragment())
.commit();
}
}
配置页面
/**
*配置页面
*/
public class SettingFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.addPreferencesFromResource(R.xml.preference);
}
}
显示如下图