您的位置:首页 > 移动开发 > Android开发

Android之用XML文件对程序进行配置

2011-09-26 09:55 435 查看
有些程序可以配置,用来让用户设置有些自定义的偏好

可以通过SharedPreference来保存程序运行时用户的状态以及用户输入过的数据,当然我们也可以通过一些自定义的内容来让用户对该程序进行设置

用户设子界面的调用

public class PreferencesFromXml extends PreferenceActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}

}

在自定义用户也配置界面的时候需要用到PreferenceScreen来进行设置

如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory
android:title="@string/inline_preferences">
//复选框的设置
<CheckBoxPreference
android:key="checkbox_preference"
android:title="@string/title_toggle_preference"
android:summary="@string/summary_toggle_preference" />

</PreferenceCategory>

<PreferenceCategory
android:title="@string/dialog_based_preferences">
//编辑框的设置
<EditTextPreference
android:key="edittext_preference"
android:title="@string/title_edittext_preference"
android:summary="@string/summary_edittext_preference"
android:dialogTitle="@string/dialog_title_edittext_preference" />
//下拉列表框 设置
<ListPreference
android:key="list_preference"
android:title="@string/title_list_preference"
android:summary="@string/summary_list_preference"
android:entries="@array/entries_list_preference"
android:entryValues="@array/entryvalues_list_preference"
android:dialogTitle="@string/dialog_title_list_preference" />

</PreferenceCategory>
//下面的一个版块都是跳转到另外一个屏幕
<PreferenceCategory
android:title="@string/launch_preferences">

<PreferenceScreen
android:key="screen_preference"
android:title="@string/title_screen_preference"
android:summary="@string/summary_screen_preference">

//可以到另外一个屏幕显示更多的设置信息   复选框

<CheckBoxPreference
android:key="next_screen_checkbox_preference"
android:title="@string/title_next_screen_toggle_preference"
android:summary="@string/summary_next_screen_toggle_preference" />

</PreferenceScreen>
//意图,用来打开一个网页
<PreferenceScreen
android:title="@string/title_intent_preference"
android:summary="@string/summary_intent_preference">

<intent android:action="android.intent.action.VIEW"
android:data="http://www.android.com" />

</PreferenceScreen>

</PreferenceCategory>

<PreferenceCategory
android:title="@string/preference_attributes">

<CheckBoxPreference
android:key="parent_checkbox_preference"
android:title="@string/title_parent_preference"
android:summary="@string/summary_parent_preference" />

//下面的复选框依赖于上面的复选框
<CheckBoxPreference
android:key="child_checkbox_preference"
android:dependency="parent_checkbox_preference"
android:layout="?android:attr/preferenceLayoutChild"
android:title="@string/title_child_preference"
android:summary="@string/summary_child_preference" />

</PreferenceCategory>

</PreferenceScreen>

用PreferenceCategory来进行类别的划分

key选项是用来在调用的时候,进行区别的一个键值,如果layout中的 id一样

在调用的时候

在setContentView之前加上PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

而通过下面的方法就可以获取到设置的XML文件中的值了



SharedPreferences sharedPref = PreferenceManager
        .getDefaultSharedPreferences(this);
        final int counter = sharedPref.getInt(
       AdvancedPreferences.KEY_MY_PREFERENCE, 0);


在对XML进行配置的时候,我们还可以在XML文件中设置该选项的默认值

只需要在给配置项中添加属性  android:defaultValue=“”就可以了

当一个设置选项需要依赖于另外一个的时候,例如上面的key为 "child_checkbox_preference"依赖于key为“parent_checkbox_preference”

此时需要对子选项设置两项内容,一个是其依赖的复选项的key,另一个是设置其属性为子选项

android:dependency="parent_checkbox_preference"
android:layout="?android:attr/preferenceLayoutChild"


li
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐