settingFragment设置属性的创建与响应

来源:互联网 发布:php 审批流程设计实现 编辑:程序博客网 时间:2024/05/16 17:24

android3.0之后设置属性有专门的方式显示,基于PrefenceFragment,通过addPreferencesFromResource(R.xml.preferences);加载界面。

如图:

        

我的布局大致如下:

       <PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/Display">
<CheckBoxPreference
android:key="pref_hiddenFiles"
android:title="@string/Show_Hidden_Files"
android:summary="@string/Display_hidden_files_and_folders"/>
<CheckBoxPreference
android:key="pref_thumbnail"
android:title="@string/Show_Image_Thumbnails"
android:summary="@string/Display_a_thumbnail_for_image_files"/>
<ListPreference
android:key="pref_view"
android:title="@string/View_Type"
android:summary="@string/Display_files_in_a_grid_or_a_list"
android:entries="@array/view"
android:entryValues="@array/view_value"
android:dialogTitle="@string/Choose_a_View" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/Sorting">
<ListPreference
android:key="pref_sorting"
android:title="@string/Sorting_Type"
android:summary="@string/Choose_how_to_sort_files_and_folders"
android:entries="@array/sorting"
android:entryValues="@array/sorting_value"
android:dialogTitle="@string/Choose_a_Sorting_Option" />
</PreferenceCategory>
        <PreferenceCategory android:title="@string/folderSetting">
<CheckBoxPreference
android:key="pref_DisplayRootDir"
android:title="@string/inital_Root_Dir"
android:summary="@string/dispaly_Root_Dir"/>
</PreferenceCategory>
    <PreferenceCategory android:title="@string/version_info">
        <Preference
            android:key="pref_version"
            android:title="@string/version_number"
            android:summary="@string/version_info_number">
        </Preference>
        <Preference
            android:key="pref_check_version"
            android:title="@string/check_version"
            android:summary="@string/check_version_summary">
        </Preference>
    </PreferenceCategory>
</PreferenceScreen>

       Preference中的控件有点特殊之处就是,当你运用了PreferenceFragment之后,在data->data->工程名下面有一个preference文件,该文件中记录了你的选择,如果你将checkpreference设置为选中状态,你会发现preference文件中对应的id的对应值变为true,这样的好处是为了后来取值方便,读取该文件就能获取到当前控件的状态,取值方法为:private SharedPreferences mPreferences;

        mPreferences = PreferenceManager.getDefaultSharedPreferences(this);

mPreferences.getBoolean( settingFragment.PREF_HIDDEN_KEY, false);

        由于Fragment的使用必须要在Activity之中,因此定义一个settingActivity,

        public class settingActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
FragmentManager fragmentManager = getFragmentManager();
settingFragment setting = new settingFragment();
FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();
fragmentTransaction.replace(android.R.id.content, setting);
fragmentTransaction.commit();
}
}

原创粉丝点击