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

Android 存储及数据操作 之 PreferenceScreen

2015-09-11 17:09 633 查看
1 、新建 MyPreferenceActivity 继承 PreferenceFragment 类,在onCreate 方法中加载自定义 PreferenceScreen XML 文件

public class MyPreferenceActivity extends PreferenceFragment {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);



//加载自定义 PreferenceScreen XML 文件

addPreferencesFromResource(R.xml.settings);

}

}

2 、 编写自定义的 PreferenceScreen xml 文件

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<PreferenceCategory

android:key="set"

android:summary="请设置"

android:title="设置" >

<CheckBoxPreference

android:key="闹钟"

android:summary="请设置闹钟"

android:title="设置闹钟" />

<ListPreference

android:entryValues="@array/list_arrays_values"

android:entries="@array/list_arrays"

android:key="列表"

android:icon="@android:drawable/ic_search_category_default"

android:title="设置列表"

android:summary="设置列表描述"

>

</ListPreference>

</PreferenceCategory>

</PreferenceScreen>

3 、 在 MainActivity 的布局文件中,加入将要放置Fragment 的容器

<FrameLayout

android:id="@+id/contain"

android:layout_width="match_parent"

android:layout_height="match_parent"

></FrameLayout>

4 、 在MainActivity 中把 PreferenceFragment 附加到Activity 上

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);



// 把 PreferenceFragment 附加到Activity 上

FragmentManager fm = getFragmentManager();

Fragment fragment = fm.findFragmentById(R.id.contain);

if (fragment == null) {

fragment = new MyPreferenceActivity();

fm.beginTransaction().add(R.id.contain, fragment)

.commit();

}

}

}

4 、注意: 例如 使用ListPreference 的时候,要注意定义

android:entryValues="@array/list_arrays_values" //<!-- 键 Key -->

android:entries="@array/list_arrays" //
<!-- 值 Value -->

这两个属性对用的Values 下的 arrays.xml 文件,注意Key-Value 都要.

<resources>

<!-- 键 KEY -->

<string-array name="list_arrays">

<item>1</item>

<item>2</item>

<item>3</item>

<item>4</item>

<item>5</item>

<item>6</item>

<!-- 值 Value -->

</string-array>

<string-array name="list_arrays_values">

<item>1.1</item>

<item>2.1</item>

<item>3.1</item>

<item>4.1</item>

<item>5.1</item>

<item>6.1</item>

</string-array>

</resources>

5 、 在 PreferenceScreen 中定义的,设定其Key

6 、 结果的 xml 文件保存在 /data/data/应用包名/share_prefs 中

7 、 在 PreferenceScreen
内部添加 PreferenceScreen ,实现点击该项进入另一新的 PreferenceScreen 功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: