跳转到主内容
极星编程网:以代码为星,赴技术山海!

Android PreferenceFragment怎么用?

大家好,我是苏承栈,今天我们来聊聊Android开发中常用的PreferenceFragment。这玩意儿在设置界面里可是大有用处,能让你轻松管理各种选项设置。

首先,PreferenceFragment是啥?简单来说,它是用来替代老式的PreferenceActivity的。以前我们用PreferenceActivity来创建设置界面,但现在推荐使用PreferenceFragment,因为它更灵活,更符合现代Android的设计理念。

接下来,我们就来一步步看看如何使用PreferenceFragment。

1. 创建PreferenceFragment

1 package com.example.m05_preffragment01;
2 
3 import android.os.Bundle;
4 import android.preference.PreferenceFragment;
5 
6 public class PrefFragment extends PreferenceFragment {
7     @Override
8     public void onCreate(Bundle savedInstanceState) {
9         super.onCreate(savedInstanceState);
10         //从xml文件加载选项 
11         addPreferencesFromResource(R.xml.preferences);
12     }
13 }

2. 定义布局文件

在res目录下创建一个xml目录,并创建一个名为preferences.xml的文件。在这个文件中,你可以定义各种Preference控件,比如CheckBoxPreference、EditTextPreference、ListPreference等等。

3. 在Activity中加载Fragment

1 package com.example.m05_preffragment01;
2 
3 import android.app.Activity;
4 import android.app.FragmentManager;
5 import android.app.FragmentTransaction;
6 import android.os.Bundle;
7 
8 public class MainActivity extends Activity {
9 
10     @Override
11     protected void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         setContentView(R.layout.activity_main);
14         
15         //加载PrefFragment
16         FragmentManager fragmentManager = getFragmentManager();
17         FragmentTransaction transaction = fragmentManager.beginTransaction();
18         PrefFragment prefFragment = new PrefFragment();
19         transaction.add(R.id.prefFragment, prefFragment);
20         transaction.commit();
21         
22     }
23     
24 }

4. 监听事件

你可以在PreferenceFragment中重写onPreferenceTreeClick()方法来监听Preference控件的点击事件。通过preference.getKey()可以获取到被点击的Preference控件的key,从而进行相应的处理。

1 @Override
2 public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
3             Preference preference) {
4     //如果“保存个人信息”这个按钮被选中,将进行括号里面的操作
5     if(
                            

相关文章